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

VB.NET Discussion :

Supprimer des Nombre d'un string ?


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2009
    Messages
    125
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 125
    Par défaut Supprimer des Nombre d'un string ?
    Bonjour,

    Je développe une petite application dans laquelle ont doit y lire des noms. Pour éviter des problemes, lorsqu'il y a deux nom pareilles, nom lui ajouteon un chiffre a la fin.

    Ex: Paul morrin , Paul morrin 2.

    Maintenant, pour lire les noms, il's doivent tous être pareille dans le combo box.

    Je voudrai savoir , s'il y a une façon de trouver s'il aun chiffre de 1 a 99 (par exemple) dans le string et par la suite , le supprimer (ainsi que l'espace).

    Merci de votre futur aide

  2. #2
    Membre émérite Avatar de ctxnop
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2007
    Messages
    858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2007
    Messages : 858
    Par défaut
    Salut
    Je vois bien deux ou trois façons de faire ca, tout dépend de comment tu remplis tes listes.
    Par exemple, si tu bind tes listes à un IList<Person> où Person est une classe contenant un membre Name (où tu stock "Paul morrin", "Paul morrin 2").

    Tu as deux solutions : créer une nouvelle propriétés qui retourne uniquement le nom (sans le nombre) et renseigner la propriété DisplayMember de tes listes.

    Tu peux également surcharger la méthode ToString() pour qu'elle te retourne ce nom sans nombre.

    Tu peux également revoir ton système de données pour qu'il accepte des noms en doublons (il gèrera un nombre unique associé a chaque nom mais dans un membre différent).

    Sinon, pour extraire le nom sans le numéro final, une expression rationnelle fera parfaitement l'affaire : ^(?<name>[a-zA-Z ]+)([\s]*[0-9]+)?$
    A adapter selon tes besoin (le résultat pourra sera peut être plus simple).

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2009
    Messages
    125
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 125
    Par défaut
    Bon,
    pour rendre le tout plus simple, tout ce que je veux savoir est

    comment faire pour supprimer le nombre qui se situe a la fin, mais qui dans le moment est géré en string dont : "paul morrin 2"

    j'avais pensé a une méthode avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    if string.contains("2") then
    ...
     
    end if
    sauf que sa ne fonctionne pas. Je voudrai juste simplement, que "Paul morrin 2" passe a "Paul morrin"

    Merci de ton aide

  4. #4
    Membre émérite Avatar de ctxnop
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2007
    Messages
    858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2007
    Messages : 858
    Par défaut
    J'ai également répondu à cette question via l'expression rationnelle.

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2009
    Messages
    125
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 125
    Par défaut
    Et comment peut-on faire cette expression rationnel avec: ^(?<name>[a-zA-Z ]+)([\s]*[0-9]+)?$ , Bien que tout ce que j'ai besoin est : [0-9]

  6. #6
    Membre Expert
    Avatar de Sehnsucht
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2008
    Messages
    847
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Lot et Garonne (Aquitaine)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Octobre 2008
    Messages : 847
    Par défaut
    Bonsoir,

    Voici un exemple simple et fonctionnel (Framework 3.5 mini) qui semble convenir au problème (avec une méthode d'extension) même si personnellement j'emploierais plutôt une méthode basée sur une propriété supplémentaire d'une classe comme suggérée plus haut.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
    Module Module1
     
        Sub Main()
            Dim myChaine As String = "Paul Morrin 2"
     
            Console.WriteLine(myChaine.ToStringWithoutTrailingNumber)
            Console.ReadKey(True)
        End Sub
     
        <Runtime.CompilerServices.Extension()>
        Function ToStringWithoutTrailingNumber(ByVal source As String) As String
            Dim temp As New String(source.TakeWhile(Function(c) Not Char.IsDigit(c)).ToArray)
            Return temp.Trim 'To remove possible space between name and number
        End Function
     
    End Module
    Cordialement !

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

Discussions similaires

  1. extraire des nombres d'une string
    Par neonico dans le forum C#
    Réponses: 9
    Dernier message: 06/03/2014, 09h58
  2. [Résolu] Supprimer des '\n' d'un string
    Par TheSunser dans le forum Général Python
    Réponses: 10
    Dernier message: 15/12/2013, 19h17
  3. [VBA] supprimer des nombres en partant de la gauche
    Par ickyknox dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 18/03/2008, 16h41
  4. Réponses: 2
    Dernier message: 26/06/2007, 16h04
  5. Comment supprimer des fichiers en nombre ?
    Par Didier L dans le forum API, COM et SDKs
    Réponses: 13
    Dernier message: 25/01/2005, 16h01

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