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 recuperer une partie d'un texte ?


Sujet :

C#

  1. #1
    Nouveau Candidat au Club
    Femme Profil pro
    en informatique
    Inscrit en
    Avril 2018
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : en informatique

    Informations forums :
    Inscription : Avril 2018
    Messages : 24
    Points : 0
    Points
    0
    Par défaut Comment recuperer une partie d'un texte ?
    Bonjour,

    sachant que je suis débutante en C#, j'aimerai bien récupérer une chaine de caractère qui est dans cette forme "COMMAND 2000 _Tree_Item_Selection java.lang.String /application files/Tests"
    les caractères après le "/" sont des arguments.

    S'il vous plais c'est urgent
    Bonne journée

  2. #2
    Membre confirmé Avatar de WaterTwelve21
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Décembre 2015
    Messages
    270
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Décembre 2015
    Messages : 270
    Points : 461
    Points
    461
    Par défaut
    Bonjour ,

    Tu devrais faire un nouveau post , sachant que celui ci est résolu depuis 12 ans.

    Sinon j'ai pas compris ce que tu souhaites faire exactement.
    throw new NoSignatureException();

  3. #3
    Nouveau Candidat au Club
    Femme Profil pro
    en informatique
    Inscrit en
    Avril 2018
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : en informatique

    Informations forums :
    Inscription : Avril 2018
    Messages : 24
    Points : 0
    Points
    0
    Par défaut
    En fait je veux parser cette chaine

  4. #4
    Expert confirmé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2009
    Messages
    2 025
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2009
    Messages : 2 025
    Points : 5 462
    Points
    5 462
    Par défaut
    Avec un expression régulère. J'ai l'impression que tu veux récupérer les paramètres qui sont aprés les /

    \/((??: ?)\w+)*)
    Tu as 2 groupes avec ce que tu cherches :
    https://regex101.com/r/a8PKEa/1

  5. #5
    Nouveau Candidat au Club
    Femme Profil pro
    en informatique
    Inscrit en
    Avril 2018
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : en informatique

    Informations forums :
    Inscription : Avril 2018
    Messages : 24
    Points : 0
    Points
    0
    Par défaut
    En fait récupérer toute la ligne en supprimant les espaces

  6. #6
    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,

    Plutôt que de répondre d'une petite phrase qui laisse tout le monde dans l'incompréhension, tu devrais exprimer clairement ton problème car "Je veux parser cette chaine" ne veut pas dire grand chose en soit.

    Tu as en input cette chaine :

    "COMMAND 2000_Tree_Item_Selection java.lang.String /application files/Tests"

    Que cherches-tu comme résultat ?

    Citation Envoyé par DjuBAK Voir le message
    En fait récupérer toute la ligne en supprimant les espaces
    Donc tu veux cette chaine en sortie :

    "COMMAND2000_Tree_Item_Selectionjava.lang.String/applicationfiles/Tests"

    Je doute...

  7. #7
    Nouveau Candidat au Club
    Femme Profil pro
    en informatique
    Inscrit en
    Avril 2018
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : en informatique

    Informations forums :
    Inscription : Avril 2018
    Messages : 24
    Points : 0
    Points
    0
    Par défaut
    Bonjour,

    Excusez moi pour cette imprécision car je suis débutante.

    en fait je veux la découper COMMAND
    2000
    _Tree_Item_Selection java.lang.String
    /application files/Tests
    et l'afficher dans une ListBox

    En gros je veux cette chaine en sortie et mettre chaque mot dans une case d'un tableau et l'afficher sur une listeBox

    Cordialement

  8. #8
    Expert éminent
    Avatar de StringBuilder
    Homme Profil pro
    Chef de projets
    Inscrit en
    Février 2010
    Messages
    4 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 4 154
    Points : 7 403
    Points
    7 403
    Billets dans le blog
    1
    Par défaut
    Un truc du genre ?
    Code csharp : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    MaListBox.Items.AddRange(machaine.Split(' '));
    On ne jouit bien que de ce qu’on partage.

  9. #9
    Nouveau Candidat au Club
    Femme Profil pro
    en informatique
    Inscrit en
    Avril 2018
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : en informatique

    Informations forums :
    Inscription : Avril 2018
    Messages : 24
    Points : 0
    Points
    0
    Par défaut
    Oui un truc de ce genre,

    il y a cette ligne "COMMAND 2000 _Tree_Item_Selection java.lang.String /application files/Tests" et je veux l’insérer dans une liste, l'afficher dans une listBox comme sous chaine

  10. #10
    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
    As-tu essayé la solution proposée par StringBuilder ? Ca ne te convient pas ??

  11. #11
    Nouveau Candidat au Club
    Femme Profil pro
    en informatique
    Inscrit en
    Avril 2018
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : en informatique

    Informations forums :
    Inscription : Avril 2018
    Messages : 24
    Points : 0
    Points
    0
    Par défaut
    Non pas encore

    je viens de l'essayer j'ai obtenue sa
    Nom : Capture.PNG
Affichages : 301
Taille : 3,3 Ko

    mais moi je veux obtenir chaque chaine colorier toute seule<<< COMMAND 2000 _Tree_Item_Selection java.lang.String [/application files/Tests]

  12. #12
    Membre expert
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2013
    Messages
    1 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Octobre 2013
    Messages : 1 563
    Points : 3 404
    Points
    3 404
    Par défaut
    Un problème simple mal exprimé se transforme vite en problème compliqué

    Pourrais-tu prendre le temps de bien éclaircir ton besoin? Qu'as-tu en entrée, que souhaites-tu obtenir en résultat?

  13. #13
    Nouveau Candidat au Club
    Femme Profil pro
    en informatique
    Inscrit en
    Avril 2018
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : en informatique

    Informations forums :
    Inscription : Avril 2018
    Messages : 24
    Points : 0
    Points
    0
    Par défaut


    En réalité j'ai une chaine de caractère qui est sous cette forme "COMMAND 2000 _Tree_Item_Selection java.lang.String /application files/Tests"

    je veux la récupérer dans une listeBox sous la forme ci-dessous:

    COMMAND
    2000
    _Tree_Item_Selection java.lang.String
    application files
    Tests

  14. #14
    Membre expert
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2013
    Messages
    1 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Octobre 2013
    Messages : 1 563
    Points : 3 404
    Points
    3 404
    Par défaut
    Ok, donc dans ce que tu dis, la réponse de @StringBuilder est correcte. Il te reste plus qu'a supprimer les '/'. Pour cela, regarde ce qu'est String.Replace.

  15. #15
    Membre confirmé Avatar de WaterTwelve21
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Décembre 2015
    Messages
    270
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Décembre 2015
    Messages : 270
    Points : 461
    Points
    461
    Par défaut
    Citation Envoyé par ZenZiTone Voir le message
    Ok, donc dans ce que tu dis, la réponse de @StringBuilder est correcte. Il te reste plus qu'a supprimer les '/'. Pour cela, regarde ce qu'est String.Replace.
    Avec cette logique _Tree_Item_Selection et java.lang.String vont être deux champs séparés. Le fait que la chaine n'est pas de délimiteur précis rend le parsing compliqué .
    A voir si il a le contrôle sur la création de cette chaîne.
    throw new NoSignatureException();

  16. #16
    Nouveau Candidat au Club
    Femme Profil pro
    en informatique
    Inscrit en
    Avril 2018
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : en informatique

    Informations forums :
    Inscription : Avril 2018
    Messages : 24
    Points : 0
    Points
    0
    Par défaut
    WaterTwelve21 les caractères sont écris par un logiciel lors de son exécution dans un fichier.log. Alors se n'est pas moi

  17. #17
    Membre expert
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2013
    Messages
    1 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Octobre 2013
    Messages : 1 563
    Points : 3 404
    Points
    3 404
    Par défaut
    Citation Envoyé par DjuBAK Voir le message
    WaterTwelve21 les caractères sont écris par un logiciel lors de son exécution dans un fichier.log. Alors se n'est pas moi
    Après, je suppose que le format des messages que tu souhaites récupérer est toujours le même?

    "COMMAND XXXXX Item1 Item2 /Param1 /Param2", par exemple?

    Si oui, tu peux faire en sorte que Item1 et Item2 soient ajoutés dans la même ligne de ton ListBox

  18. #18
    Nouveau Candidat au Club
    Femme Profil pro
    en informatique
    Inscrit en
    Avril 2018
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : en informatique

    Informations forums :
    Inscription : Avril 2018
    Messages : 24
    Points : 0
    Points
    0
    Par défaut
    ZenZiTone

    Oui j'ai compris mais comment je pourrai le faire ?????????

  19. #19
    Membre expert
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2013
    Messages
    1 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Octobre 2013
    Messages : 1 563
    Points : 3 404
    Points
    3 404
    Par défaut
    String.Split(' ') te retourne un tableau de String. De là tu manipules ce tableau pour ajouter les éléments que tu souhaites à ta ListeBox.

  20. #20
    Membre chevronné
    Homme Profil pro
    edi
    Inscrit en
    Juin 2007
    Messages
    899
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : edi

    Informations forums :
    Inscription : Juin 2007
    Messages : 899
    Points : 1 916
    Points
    1 916
    Par défaut
    string.Split() peut prendre en paramètre le nombre maximal de césures, si tu es certain de la forme de la chaîne en entrée tu peux t'en servir. Avec l'exemple que tu donnes (4 éléments) : maLigne.Trim().Split(new [] {' '}, 4).

    Si tu veux découper d'abord selon les espaces, puis selon les slash :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    maLigne.Trim().Split(new [] {' '}, 4, StringSplitOptions.RemoveEmptyEntries).SelectMany(s => s.Split(new [] {'/'}, StringSplitOptions.RemoveEmptyEntries)).Select(s => s.Trim()).ToArray();
    Si tu veux être plus spécifique dans le traitement de la dernière chaîne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    maLigne.Trim().Split(new[] { ' ' }, 4, StringSplitOptions.RemoveEmptyEntries)
        .Aggregate(
            new List<string>(),
            (l, s) =>
            {
                if (l.Count < 3) l.Add(s); else l.AddRange(s.Split(new [] {'/'}, StringSplitOptions.RemoveEmptyEntries));
                return l;
            })
        .Select(s => s.Trim()).ToArray();
    string.Trim() pemet de se débarrasser des espaces en début et en fin de ligne et StringSplitOptions.RemoveEmptyEntries permet de ne pas retenir des résultats de chaine vide lors de la découpe, lorsque l'on a plusieurs caractères de séparation qui se suivent. Mais c'est peut-être "overkill" si le fichier est généré par programmation.

Discussions similaires

  1. [CS4] Comment placer une partie d'un texte en couleur ?
    Par henri68 dans le forum Dreamweaver
    Réponses: 5
    Dernier message: 14/01/2013, 18h06
  2. comment recuperer une partie d'un fichier XML
    Par ryoussef19 dans le forum Visual C++
    Réponses: 2
    Dernier message: 10/07/2007, 17h02
  3. [C#] Comment copier une partie d'un texte ?
    Par zidenne dans le forum C#
    Réponses: 1
    Dernier message: 18/09/2006, 10h37
  4. comment récuperer une partie selectionné de texte?
    Par Death83 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 08/09/2005, 12h22
  5. Picklist: comment recuperer une partie de la valeur
    Par mesquest dans le forum Bases de données
    Réponses: 3
    Dernier message: 07/06/2004, 08h54

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