Separateur en variable

Signaler
Messages postés
28
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
6 juin 2007
-
Messages postés
3466
Date d'inscription
lundi 16 octobre 2000
Statut
Modérateur
Dernière intervention
30 octobre 2008
-
bonjour je voudrais savoir comment mettre mon separateur en variable pour que je puisse utiliser cette methode pour tout type de separateur

quand
if

(ligne !=
null){

line = ligne.Split(

new
char[]{'\t'});}

merci

[font=Century Gothic]ZNCPoGothic

10 réponses

Messages postés
3466
Date d'inscription
lundi 16 octobre 2000
Statut
Modérateur
Dernière intervention
30 octobre 2008
49
Salut
Si j'ai bien compris la question :

char[] sep =
new
char[] {
'\t' };
//..

line = ligne.Split(sep);

Mx
MVP C# 
Messages postés
28
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
6 juin 2007

en fait je recois mon separateur dans un string et j'aimerai ne pas avoir à ecrire dans le code le separateur que ce soit "\t" ou ";" ou "|"
j'aimerai que mon string soit transformé automatiquement en char pour pouvoir le mettre dans la methode split:

je recoit string separateur  et j'aimerai avoir

line= ligne.Split(new char[] {separateur})

[font=Century Gothic]ZNCPoGothic
Messages postés
3466
Date d'inscription
lundi 16 octobre 2000
Statut
Modérateur
Dernière intervention
30 octobre 2008
49
Dans ce cas tu peux faire ligne.Split(separateur.ToCharArray());

Mx
MVP C# 
Messages postés
28
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
6 juin 2007

merci pour ton aide mais ca ne marche que pour le "|" ou le ";" sinon pour la tabulation "\t"
ca ne marche pas il m'en trouve 1 sur ligne qui en contien plus d'une dizaine, tu vois ce que cela pourrait etre ?

[font=Century Gothic]ZNCPoGothic
Messages postés
3466
Date d'inscription
lundi 16 octobre 2000
Statut
Modérateur
Dernière intervention
30 octobre 2008
49
Je viens de tester, ca fonctionne chez moi.
Montre nous un extrait de ton code si tu veux.

Mx
MVP C# 
Messages postés
28
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
6 juin 2007

voila la partie du code qui est concerné, comme je te disais ca marche pour les autres separateurs mais par pour la tabulation   "\t".

private



ArrayList DecoupeLigne(String ligne,String separateur)
{


                  string
[] line =

new



string
[nbColonne];
                  ArrayList liste =

new
ArrayList();


                  if
(ligne !=

null
)
                  {   
                              line = ligne.Split(separateur.ToCharArray());


                  }                   IEnumerator ie=line.GetEnumerator();


                  while
(ie.MoveNext())
                  {
                              liste.Add(ie.Current);
                   }




   return
liste;
}




[font=Century Gothic]ZNCPoGothic
Messages postés
3466
Date d'inscription
lundi 16 octobre 2000
Statut
Modérateur
Dernière intervention
30 octobre 2008
49
Si je fais

foreach (
string str
in DecoupeLigne(maChaine,
"\t"))

   Console.WriteLine(str);

Ca fonctionne sans probleme.
Ca vient peut etre de la chaine en entrée ?

Sinon :
<hr />

private
static
ArrayList DecoupeLigne(
String ligne,
String separateur)
{

   ArrayList liste =
new
ArrayList();

   if (ligne !=
null)

      foreach (
string s
in ligne.Split(separateur.ToCharArray()))
         liste.Add(s);

return liste;
}
<hr />
Et en .Net2 tu peux utiliser StringCollection plutot qu'un ArrayList

Mx
MVP C# 
Messages postés
3246
Date d'inscription
lundi 25 avril 2005
Statut
Modérateur
Dernière intervention
27 octobre 2012
38
Tu voulais dire en .NET 2.0 tu peux utiliser une List< string > plutôt qu'un ArrayList, StringCollection c'est du 1.1.
Messages postés
3466
Date d'inscription
lundi 16 octobre 2000
Statut
Modérateur
Dernière intervention
30 octobre 2008
49
Mince, faut que je revoies mes classiques moi

Mx
MVP C# 
Messages postés
3466
Date d'inscription
lundi 16 octobre 2000
Statut
Modérateur
Dernière intervention
30 octobre 2008
49
Bon, ouai, je me suis emmell les pinceaux. Persuadé que la StringCollection était arrivé avec le .Net 2
Donc oui, c'est bien List<string> en .Net 2

Mx
MVP C#