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 :

Extraction de chaines


Sujet :

C#

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Août 2006
    Messages
    228
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 228
    Points : 60
    Points
    60
    Par défaut Extraction de chaines
    Bonjour à tous,

    Je viens de découvrir un bug grave dans mon code.

    J'ai un web service qui me ramène une chaine NOM PRENOM.

    Dans mon champs de recherche, j'affiche cette liste et l'internaute clique sur un nom. Je redirige donc vers la fiche du personnage concerné.

    Hors, un petit truc idiot ... Certaines personnes ont des noms composés de deux voir trois mots : DE LA VIGNE ROBERT par exemple.

    Dans mon code je gère ça "bêtement" :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    string name = TbByName.Text;
            Response.Redirect("~/Nom.aspx?nom=" + name.Split(' ')[0] + "&prenom=" + name.Split(' ')[1]);
    Je me dis, que puisque les prénoms composés possèdent un "-", je devrais commencer par la droite de ma chaine.

    Qu'en pensez-vous ?

    Une idée ?

    Merci d'avance pour votre aide.

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    1 002
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 1 002
    Points : 552
    Points
    552
    Par défaut
    faut faire 2 champs distincts...
    y a pas d'autre solution

    enfin si y en à une: obliger l'utilisateur à utiliser un séparateur pour discerner le nom du prénom, genre un '|'
    mais c'est n'importe quoi

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    135
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 135
    Points : 179
    Points
    179
    Par défaut
    Pas fiable ton système : Et si on s'appelle Jean Edouard De La Vigne Robert ?

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Août 2006
    Messages
    228
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 228
    Points : 60
    Points
    60
    Par défaut
    oui, je pensais justement stocker le prénom dans une chaine et le nom dans une autre avant mon redirect. Le prénom étant la première chaine avant l'espace en partant de la droite (Jean-Yves).

    Pas fiable, ok, je l'accepte sans aucun soucis, mais quelle solution proposes-tu ?

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    1 002
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 1 002
    Points : 552
    Points
    552
    Par défaut
    Citation Envoyé par Scots Voir le message
    oui, je pensais justement stocker le prénom dans une chaine et le nom dans une autre avant mon redirect. Le prénom étant la première chaine avant l'espace en partant de la droite (Jean-Yves).

    Pas fiable, ok, je l'accepte sans aucun soucis, mais quelle solution proposes-tu ?
    faut faire 2 champs dans ton formulaire

    sinon pour répondre techniquement à ta question, le caractere espace est un mauvais choix pour la séparation, donc oblige l'utilisateur à séparer son nom et prénom avec un pipe

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Août 2006
    Messages
    228
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 228
    Points : 60
    Points
    60
    Par défaut
    Je n'ai pas ces possibilités :

    - Le champs est unique et je ne peux pas mettre de champs prénom
    - Le est rempli en auto complétion via un web service

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    1 002
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 1 002
    Points : 552
    Points
    552
    Par défaut
    Citation Envoyé par Scots Voir le message
    Je n'ai pas ces possibilités :

    - Le champs est unique et je ne peux pas mettre de champs prénom
    - Le est rempli en auto complétion via un web service
    si tu n'as pas la possibilité de changer le format d'entré, ni de rajouter une variable, ba tu n'as aucunes solutions alors

    pas de solution pas de problème

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Août 2006
    Messages
    228
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 228
    Points : 60
    Points
    60
    Par défaut
    Les prénoms de ma base, s'ils sont composés, ont un "-" comme séparateur.

    On doit bien pouvoir récupérer ça non ?

    Même si ce n'est qu'une solution temporaire, là je suis en prod ...

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    1 002
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 1 002
    Points : 552
    Points
    552
    Par défaut
    Scots
    donc si le format est :
    DE LA VIGNE JEAN-CLAUDE

    en mode pourri:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
                string test = "DE LA VIGNE JEAN-CLAUDE";
                string[] split = test.Split(' ');
                string prenom = split[split.Length-1];
                string nom = test.Replace(" " + prenom, string.Empty);
    c'est beau hein ?

    y a meme en moins buggé (genre mon nom et mon prénom sont les memes)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
                string test = "JEAN-CLAUDE DE LA VIGNE JEAN-CLAUDE";
                string[] split = test.Split(' ');
                string prenom = split[split.Length -1];
                string nom = test.Remove(test.Length - prenom.Length - 1, prenom.Length + 1);

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Août 2006
    Messages
    228
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 228
    Points : 60
    Points
    60
    Par défaut
    Ok alavoler.

    Je viens de piger comment tu fais

    Merci beaucoup pour l'explication. Je vais tester ça très vite. et je vous dirais si ça résoud mon problème.

    En tout cas, même dans la probabilité d'un prénom sans tiret, le risque d'erreur sera énormément moins grand qu'avec ce que j'avais fait moi

  11. #11
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    1 002
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 1 002
    Points : 552
    Points
    552
    Par défaut
    Citation Envoyé par Scots Voir le message
    Ok alavoler.

    Je viens de piger comment tu fais

    Merci beaucoup pour l'explication. Je vais tester ça très vite. et je vous dirais si ça résoud mon problème.

    En tout cas, même dans la probabilité d'un prénom sans tiret, le risque d'erreur sera énormément moins grand qu'avec ce que j'avais fait moi
    pas de problème,
    en tout cas le blem de depart, tu l'aura compris, vient du choix de ne pas mettre un caractère discernant , mais t'y peut rien visiblement

  12. #12
    Membre du Club
    Profil pro
    Inscrit en
    Août 2006
    Messages
    228
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 228
    Points : 60
    Points
    60
    Par défaut
    Oui, tu as raison. Mais on ne choisit pas toujours ce que l'on devrait faire

    En tout cas, ta solution palie à mo nproblème et fonctionne parfaitement pour cette V1.

    Merci beaucoup.

  13. #13
    Membre éprouvé

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juin 2011
    Messages
    487
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2011
    Messages : 487
    Points : 945
    Points
    945
    Par défaut
    Pourquoi ne pas renvoyer une classe personnalisée genre :

    public class Person
    {
    public string Name {get; set;}
    public string FirstName {get;set;}
    }
    Ou sinon du xml tout simplement. Le parsing de string pour récupérer plusieurs informations est toujours une source de bug énorme quand une structure de fichier n'est pas définie (Genre les 3 premiers caractères c'est un ID, les 5 suivants c'est une référence, etc ...)

  14. #14
    Membre du Club
    Profil pro
    Inscrit en
    Août 2006
    Messages
    228
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 228
    Points : 60
    Points
    60
    Par défaut
    Bonjour, peux-tu être un peu polus explicite ? Je ne vois pas bien comment tu fais ça ?

    Merci en tout cas

  15. #15
    Membre éprouvé

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juin 2011
    Messages
    487
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2011
    Messages : 487
    Points : 945
    Points
    945
    Par défaut
    Ton WebService renvoie une chaîne à l'heure actuelle. Qu'est ce qui t'empêche de renvoyer un objet "complexe" a la place ? Ou une chaîne en xml ?

    (Désolé mais je ne vois pas sur quel point je ne suis pas clair donc c'est pas facile d'expliciter plus que ça...)

  16. #16
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    1 002
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 1 002
    Points : 552
    Points
    552
    Par défaut
    MaximePalmisano
    D'après ce que j'ai compris, il ne peut pas changer l'appelant,
    son besoin c'est de trouver une grosse rustine qui tache

  17. #17
    Membre éprouvé

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juin 2011
    Messages
    487
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2011
    Messages : 487
    Points : 945
    Points
    945
    Par défaut
    Mea culpa. J'avais compris qu'il exposait lui même un WS.

    Dans ce cas, le rustinage est la seule solution pour utiliser un WS complètement foireux :p

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Extraction de chaine de caractères
    Par asterix76-rouen dans le forum Langage
    Réponses: 4
    Dernier message: 20/12/2006, 23h17
  2. Extraction de chaine
    Par Daniel MOREAU dans le forum VBA Access
    Réponses: 6
    Dernier message: 14/02/2006, 09h01
  3. Requete avec extraction de chaine
    Par bestall666 dans le forum Access
    Réponses: 8
    Dernier message: 04/02/2006, 18h17
  4. [String]Extraction de chaîne
    Par sangei dans le forum Langage
    Réponses: 6
    Dernier message: 19/12/2005, 11h25
  5. [XSLT] Extraction de chaine de caractere
    Par Hugo001 dans le forum XSL/XSLT/XPATH
    Réponses: 11
    Dernier message: 28/10/2004, 08h27

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