IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

Comment séparer des lettres et des chiffres dans un string ?


Sujet :

C#

  1. #1
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2017
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2017
    Messages : 21
    Points : 15
    Points
    15
    Par défaut Comment séparer des lettres et des chiffres dans un string ?
    Bonjour,

    Alors voilà je suis stagiaire en 1ère année de bts sio et je voudrais savoir comment séparer des lettres et des chiffres dans un string.
    Je m'explique, nous avons une textbox où on rentre un matricule d'une machine (ex : "M9810") le probleme etant que si on rentre la ou les lettres en minuscules cela renvoie une erreur car les lettres des matricules sont en majuscule dans la base de données.. donc comment séparer la ou les lettres des chiffres?
    pour les mettre en majuscule, je suppose qu'une fois la ou les lettres séparées des chiffres il suffit d'utiliser ToUpper .

    Help svp c'est urgent
    Merci d'avance à ceux qui répondront.

  2. #2
    Membre expérimenté
    Homme Profil pro
    Développeur .Net / Delphi
    Inscrit en
    Juillet 2002
    Messages
    738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur .Net / Delphi
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2002
    Messages : 738
    Points : 1 745
    Points
    1 745
    Par défaut
    Bonjour,

    Tu n'as pas besoin de séparer les chiffres et les lettres. ToUpper() fonctionnera sur une chaine du type "m9810".

  3. #3
    Expert confirmé
    Avatar de popo
    Homme Profil pro
    Analyste programmeur Delphi / C#
    Inscrit en
    Mars 2005
    Messages
    2 752
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste programmeur Delphi / C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 2 752
    Points : 5 458
    Points
    5 458
    Par défaut
    Autre solution (en tout cas pour SQL Server mais comme tu ne précise pas...)


    Rendre la recherche insensible à la casse.
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT Champ1 FROM MaTable WHERE CHamp2 COLLATE Latin1_General_CI_AS = @Code

  4. #4
    Expert confirmé

    Homme Profil pro
    Responsable déploiement (SCCM, InTune, GPO)
    Inscrit en
    Juillet 2014
    Messages
    3 201
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Responsable déploiement (SCCM, InTune, GPO)
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2014
    Messages : 3 201
    Points : 5 795
    Points
    5 795
    Par défaut
    Les deux réponses données semblent les meilleurs ... dommage nous ne séparerons pas les lettres des chiffres aujourd'hui.

  5. #5
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2017
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2017
    Messages : 21
    Points : 15
    Points
    15
    Par défaut
    on a déjà essayé ToUpper() et ca nous faisait des erreurs c'est pour ca que je demandais ^^'
    merci d'avoir répondu

  6. #6
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2017
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2017
    Messages : 21
    Points : 15
    Points
    15
    Par défaut
    Citation Envoyé par popo Voir le message
    Autre solution (en tout cas pour SQL Server mais comme tu ne précise pas...)


    Rendre la recherche insensible à la casse.
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT Champ1 FROM MaTable WHERE CHamp2 COLLATE Latin1_General_CI_AS = @Code
    base oracle désolée

  7. #7
    Membre expérimenté
    Homme Profil pro
    Développeur .Net / Delphi
    Inscrit en
    Juillet 2002
    Messages
    738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur .Net / Delphi
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2002
    Messages : 738
    Points : 1 745
    Points
    1 745
    Par défaut
    Citation Envoyé par cs_em13 Voir le message
    on a déjà essayé ToUpper() et ca nous faisait des erreurs c'est pour ca que je demandais ^^'
    merci d'avoir répondu
    Des erreurs, c'est vague. Quel genre d'erreurs ?

    Pour oracle c'est la fonction upper:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select upper('m849') from dual

  8. #8
    Nouveau membre du Club
    Homme Profil pro
    Elève Ingénieur
    Inscrit en
    Juillet 2014
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Elève Ingénieur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2014
    Messages : 26
    Points : 34
    Points
    34
    Par défaut
    A quel niveau exactement rencontres-tu des erreurs? Dans le code (Vb, CC#, ...) ou dans la requête SQL? et aussi ce serait bien si tu pouvais nous faire une capture (LISIBLE) de l'erreur en question. Ce sera plus facile pour nous de t'aider

  9. #9
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2017
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2017
    Messages : 21
    Points : 15
    Points
    15
    Par défaut
    disons que nous avons fait la gestion des erreurs alors il n'y a pas d'erreur réelle qui saffiche juste, dans la méthode qui fait la recherche et rempli les labels et la listview, d'abord on vérifie que la tbx n'est pas vide, puis on vérifie si le matricule n'est pas faux, si une lettre contenue dans le matricule est en minuscule alors le matricule est introuvable dans la base de données, s'il n'y a pas d'erreur alors il rempli les objet
    Nom : searchingMachine_debut.png
Affichages : 908
Taille : 12,6 Ko
    Nom : M_non_valide.png
Affichages : 801
Taille : 7,8 Ko
    Nom : M_valide.png
Affichages : 776
Taille : 7,1 Ko

  10. #10
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2017
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2017
    Messages : 21
    Points : 15
    Points
    15
    Par défaut
    résolu, merci à vous
    nous avions déjà essayés la méthode .ToUpper() ca n'avait pas fonctionner et nous renvoyait une erreur mais maintenant ca fonctionne >< merci à vous

  11. #11
    Nouveau membre du Club
    Homme Profil pro
    Elève Ingénieur
    Inscrit en
    Juillet 2014
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Elève Ingénieur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2014
    Messages : 26
    Points : 34
    Points
    34
    Par défaut
    Citation Envoyé par cs_em13 Voir le message
    résolu, merci à vous
    nous avions déjà essayés la méthode .ToUpper() ca n'avait pas fonctionner et nous renvoyait une erreur mais maintenant ca fonctionne >< merci à vous
    Ok Cool, c'est toujours bien de résoudre une erreur, mais pour ton expérience il serait souhaitable que tu saches exactement ce qui bloquait ta méthode ToUpper sinon tu pourras avoir le même problème sur une autre application. Ceci dit je te souhaite bonne continuation.

  12. #12
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2017
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2017
    Messages : 21
    Points : 15
    Points
    15
    Par défaut
    je ne le saurai peut etre jamais, on avait peut etre fait une faaute dans la syntaxe qui sait ?
    on a changé de design, nouveau soucis.. là par contre j'ai du mal vraiment..
    si qqn peut aider svp

    1ere version on avait une listview avec les premieres infos sur les utilisateurs, matricule, nom, prenom, service
    on double cliquait sur la personne qu'on voulait et ca affichait les infos dans un UserControl (dans les labels, etc)
    Nom : 1titre.png
Affichages : 808
Taille : 6,1 Ko
    code : Nom : code1.png
Affichages : 848
Taille : 54,8 Ko
    en sachant que : string dn = lvItemUser.Name;

    2eme version on a plus de listview, tous les labels sont sur un seul form, plus de UserControl
    soucis : on ne récupère plus certains trucs et je sais pas comment faire..
    Nom : 2 titre.png
Affichages : 822
Taille : 11,6 Ko
    code : Nom : code 2.png
Affichages : 833
Taille : 15,6 Ko

    du coup rien ne rempli les labels, et dans la classe ActiveDirectory il finit par passer dans un catch mais j'ai utilisé un wait cursor au début de la méthode dans la 2eme version pour bien voir si ca s'arretait en mettant un cursor.default à la fin et ca continu de tourner sans jamais rien afficher..

    la variable dn n'est pas égale à la meme chose dans les 2 versions et n'utilisant plus de listview et de datatable, je ne sais pas comment récupérer ces infos..

  13. #13
    Membre expérimenté
    Homme Profil pro
    Développeur .Net / Delphi
    Inscrit en
    Juillet 2002
    Messages
    738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur .Net / Delphi
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2002
    Messages : 738
    Points : 1 745
    Points
    1 745
    Par défaut
    Bonjour,

    Cela vient sûrement de ta méthode LitUserAttributes qui attend autre chose que le paramètre que tu lui envois (paramètre dn ... à mon avis tu lui envois juste un nom alors qu'il attend un Distinguish Name (dn)).
    Tes deux codes n'ont rien à voir au delà du fait que tu te passes du listview : Dans le premier tu appelles SearchUsers(). Je suppose que cette méthode doit faire une recherche dans l'ac des users en fonction d'un nom simple ou d'un user login. Dans le second code tu utilises LitUserAttributes() qui doit, je suppose encore une fois, retourner les attributs d'un user mais cette fois en utilisant son dn.

    Il faut que tu expliques ce que tu fais pour qu'on puisse t'aider.

  14. #14
    Expert confirmé
    Avatar de popo
    Homme Profil pro
    Analyste programmeur Delphi / C#
    Inscrit en
    Mars 2005
    Messages
    2 752
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste programmeur Delphi / C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 2 752
    Points : 5 458
    Points
    5 458
    Par défaut
    base oracle désolée
    C'est la raison pour laquelle les règles du forum stipulent qu'il faut préciser le type de base de données et le moyen d'y accéder.

    Avec oracle
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    execute immediate 'alter session set NLS_COMP=LINGUISTIC';
     
    execute immediate  'alter session set NLS_SORT=BINARY_CI';
    Ce lien devrait t'intéresser :
    http://www.dba-oracle.com/t_case_ins...s_searches.htm

Discussions similaires

  1. Réponses: 6
    Dernier message: 24/12/2014, 20h45
  2. Conversion des lettres par des lettres avec accent
    Par SamusStrife dans le forum Général Java
    Réponses: 6
    Dernier message: 28/10/2014, 15h44
  3. Réponses: 3
    Dernier message: 09/10/2009, 18h05
  4. Séparation des lettres et des chiffres d'une chaîne
    Par camoa dans le forum Assembleur
    Réponses: 2
    Dernier message: 24/01/2007, 17h46
  5. [VB-Excel]Trier une valeur comprennant des lettres et des chiffres
    Par DomBourti dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 06/07/2006, 21h51

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo