Utilissation de streamreader

Résolu
yabiyou Messages postés 43 Date d'inscription jeudi 19 juillet 2007 Statut Membre Dernière intervention 6 septembre 2007 - 21 août 2007 à 11:35
cs_Bidou Messages postés 5487 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 - 21 août 2007 à 15:07
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;
A voir également:

5 réponses

cs__Syl_ Messages postés 66 Date d'inscription vendredi 20 octobre 2006 Statut Membre Dernière intervention 25 février 2008 2
21 août 2007 à 12:01
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_
3
cs_Bidou Messages postés 5487 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 61
21 août 2007 à 15:07
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-
3
bernie666 Messages postés 427 Date d'inscription mercredi 1 octobre 2003 Statut Membre Dernière intervention 29 janvier 2008 1
21 août 2007 à 11:56
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
0
yabiyou Messages postés 43 Date d'inscription jeudi 19 juillet 2007 Statut Membre Dernière intervention 6 septembre 2007
21 août 2007 à 14:21
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
0

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

Posez votre question
yabiyou Messages postés 43 Date d'inscription jeudi 19 juillet 2007 Statut Membre Dernière intervention 6 septembre 2007
21 août 2007 à 14:42
 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
0
Rejoignez-nous