Utilissation de streamreader [Résolu]

Signaler
Messages postés
43
Date d'inscription
jeudi 19 juillet 2007
Statut
Membre
Dernière intervention
6 septembre 2007
-
Messages postés
5487
Date d'inscription
dimanche 4 août 2002
Statut
Modérateur
Dernière intervention
20 juin 2013
-
Bonjour

Je ne comprend ce qui est stocker dans ligne. Je voudrais que les lignes  de mon fichier soient stocker dans un tableau.
Voici mon code. Rien n'apparait dans ma Box...
StreamReader

sr =
new
StreamReader(Nomfichier[0]);

String ligne;

int j;j=0;

while ((ligne = sr.ReadLine()) !=
null){

ligne = sr.ReadLine();

}

sr.Close();

Box.Text = ligne;

5 réponses

Messages postés
66
Date d'inscription
vendredi 20 octobre 2006
Statut
Membre
Dernière intervention
25 février 2008
1
Bonjour,

La derniere ligne de ton fichier est peut être vide ce qui fait que rien ne s'affiche dans ta textBox, ta variable ligne étant écrasé à chaque fois que le streamreamder lit une ligne du fichier.

si tu veux récupérer toutes les lignes dans la variable string ligne remplace

ligne = sr.ReadLine();

par

ligne += sr.ReadLine();

(tu peux passer par une richtextbox aussi)

Si tu veux stocker les lignes de ton fichier dans un tableau pourquoi utilises tu un String ?

Soit tu comptes les lignes de ton fichier et tu déclares un tableau avec la taille qu'il faut, soit tu passes par une ArrayList

Array maListe = new ArrayList();
et dans ton while :
maListe.Add(sr.ReadLine().ToString()); (le ToString n'est pas forcément nécessaire)

à quoi te sert ton entier j ?

_Syl_
Messages postés
5487
Date d'inscription
dimanche 4 août 2002
Statut
Modérateur
Dernière intervention
20 juin 2013
49
C'est parce que tu appelles 2x readline:
ArrayList maListe =
new
ArrayList();

while ((string ligne = sr.ReadLine()) !=
null)
{
   maListe.Add(ligne);
}
sr.Close();

<hr />
-Blog-
Messages postés
427
Date d'inscription
mercredi 1 octobre 2003
Statut
Membre
Dernière intervention
29 janvier 2008
1
StreamReader


sr =

new



StreamReader
(Nomfichier[0]);


String
ligne;


int
j;
j=0;


while
((ligne = sr.ReadLine()) !=

null
)
{

ligne = sr.ReadLine();

Box.Text = Box.Text + ligne;
}

sr.Close();

Utilise une listeBox sa sera plus approprié

-------------------------------------------http://quoideneufaujourdhui.spaces.live.com
Messages postés
43
Date d'inscription
jeudi 19 juillet 2007
Statut
Membre
Dernière intervention
6 septembre 2007

rebonjour,

merci pour les réponses
J'ai essayé avec Array list mais ça marche pas...

Erreur 1 Impossible de convertir implicitement le type 'System.Collections.ArrayList' en 'System.Array' D:\Documents and Settings\lescoatf\Bureau\brouillon\test\test\Form1.cs 119 29 test

Erreur 2 'System.Array' ne contient pas de définition pour 'Add' D:\Documents and Settings\lescoatf\Bureau\brouillon\test\test\Form1.cs 123 25 test

Array

maListe =
new
ArrayList();

while ((ligne = sr.ReadLine()) !=
null){

maListe.Add(sr.ReadLine().ToString());

}

sr.Close();

 

label1.Text = maListe;

Mon but est assez simple:
   - lire une ligne, la staquer dans l'indice n°i de mon tableau
   - faire des repérage de ligne "repère" pour pouvoir faire des Split et récupérer des valeurs numériques dans plusieurs tableaux qui me serviront par la suite
Messages postés
43
Date d'inscription
jeudi 19 juillet 2007
Statut
Membre
Dernière intervention
6 septembre 2007

 c 'est encore moi
j'ai réussit à utiliser Arraylist finalement mais j'ai un problème, je perds une ligne sur deux... je ne comprend pas c'est comme si Realine ne lisait qu'une ligne sur deux