Separateur en variable

zncpo Messages postés 28 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 6 juin 2007 - 6 juin 2006 à 10:47
MorpionMx Messages postés 3466 Date d'inscription lundi 16 octobre 2000 Statut Membre Dernière intervention 30 octobre 2008 - 6 juin 2006 à 20:41
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

MorpionMx Messages postés 3466 Date d'inscription lundi 16 octobre 2000 Statut Membre Dernière intervention 30 octobre 2008 57
6 juin 2006 à 11:45
Salut
Si j'ai bien compris la question :

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

line = ligne.Split(sep);

Mx
MVP C# 
0
zncpo Messages postés 28 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 6 juin 2007
6 juin 2006 à 15:02
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
0
MorpionMx Messages postés 3466 Date d'inscription lundi 16 octobre 2000 Statut Membre Dernière intervention 30 octobre 2008 57
6 juin 2006 à 15:10
Dans ce cas tu peux faire ligne.Split(separateur.ToCharArray());

Mx
MVP C# 
0
zncpo Messages postés 28 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 6 juin 2007
6 juin 2006 à 15:18
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
MorpionMx Messages postés 3466 Date d'inscription lundi 16 octobre 2000 Statut Membre Dernière intervention 30 octobre 2008 57
6 juin 2006 à 15:22
Je viens de tester, ca fonctionne chez moi.
Montre nous un extrait de ton code si tu veux.

Mx
MVP C# 
0
zncpo Messages postés 28 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 6 juin 2007
6 juin 2006 à 18:39
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
0
MorpionMx Messages postés 3466 Date d'inscription lundi 16 octobre 2000 Statut Membre Dernière intervention 30 octobre 2008 57
6 juin 2006 à 18:54
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# 
0
Lutinore Messages postés 3246 Date d'inscription lundi 25 avril 2005 Statut Membre Dernière intervention 27 octobre 2012 41
6 juin 2006 à 20:20
Tu voulais dire en .NET 2.0 tu peux utiliser une List< string > plutôt qu'un ArrayList, StringCollection c'est du 1.1.
0
MorpionMx Messages postés 3466 Date d'inscription lundi 16 octobre 2000 Statut Membre Dernière intervention 30 octobre 2008 57
6 juin 2006 à 20:22
Mince, faut que je revoies mes classiques moi

Mx
MVP C# 
0
MorpionMx Messages postés 3466 Date d'inscription lundi 16 octobre 2000 Statut Membre Dernière intervention 30 octobre 2008 57
6 juin 2006 à 20:41
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# 
0
Rejoignez-nous