Extraire des valeurs d'un string provenant d'une socket [Résolu]

Signaler
Messages postés
6
Date d'inscription
samedi 22 septembre 2007
Statut
Membre
Dernière intervention
10 juin 2008
-
Messages postés
6
Date d'inscription
samedi 22 septembre 2007
Statut
Membre
Dernière intervention
10 juin 2008
-
Bonjour

Je ne m'y connait pas trop en C# mais dois l'utiliser pour une application PDA.

En fait avec l'application PDA (C#) j'envoi une requête à un serveur (créé en C++) et mon PDA reçoit la réponse comme ceci (par exemple):
001.pgp@002.pgp@003.pgp ... etc le tout dans un string.
(001.pgp est un nom de fichier)




Pour résumer en un exmple j'ai ceci en gros:
string FileAttente =
"001.pgp@002.pgp@003.pgp";




Je voudrais séparer mes noms de fichier 001.pgp, 002.pgp ..etc pour les afficher un par un dans une listbox.
car pour le moment j'ai ceci:
listBoxFileAttente.Items.Add(FileAttente);
et cela m'affiche tout sur une ligne comme ceci (ce qui est normal):



001.pgp@002.pgp@003.pgp





Ce qui me pose problème c'est de sortir les noms de fichier en me servant des arobases comme délimiteur afin d'obtenir ceci dans ma listbox:
001.pgp
002.pgp
003.pgp

Je ne sais pas si vous avez compris ma demande alors n'hésitez pas ;)
Merci pour vos réponses futures.

2 réponses

Messages postés
6351
Date d'inscription
samedi 1 juin 2002
Statut
Modérateur
Dernière intervention
2 août 2014
84
Salut,

Dans ton cas String.Split devrait suffire.

/*
coq
MVP Visual C#
CoqBlog
*/
Messages postés
6
Date d'inscription
samedi 22 septembre 2007
Statut
Membre
Dernière intervention
10 juin 2008

Merci beaucoup, tu viens de m'enlever une belle épine du pied ;)

Je mets un bout de code si ça peux en aider certain.

--------------------------------------------------------------------------------------------------

                (...)

   

            int Indice, CompteurSplit;

                Indice=0;

                CompteurSplit = 0;






               


(...)




                FileAttente = System.Text.Encoding.ASCII.GetString(data, 0, bytes);        // Je reçois dans un string la chaine que m'envoit le serveur.
                string[] split = FileAttente.Split(new Char[] { '@' });         // Je mets dans split les noms de mes fichiers qui sont séparés par des @
                int splitTaille = split.Length;        



// Je récupére le nombre de fichier dans qu'il y a dans split (Je croyais qu'il fallait utiliser Rank mais ça ne fonctionne pas alors qu'avec Length ça passe.







                while (CompteurSplit != splitTaille)        



// Pour finir, une boucle pour afficher les noms de fichiers les uns à la suite des autres.





                {
                    listBoxFileAttente.Items.Add(split[Indice]);
                    CompteurSplit++;
                    Indice++;
                }




                (...)






--------------------------------------------------------------------------------------------------

Encore merci.

PS: Il est possible que j'ai encore besoin de vous par la suite lol