Integrer chak ligne de fichier ds une case d'un tableau

cs_titima Messages postés 2 Date d'inscription mardi 21 juin 2005 Statut Membre Dernière intervention 22 août 2005 - 22 août 2005 à 16:14
Lutinore Messages postés 3246 Date d'inscription lundi 25 avril 2005 Statut Membre Dernière intervention 27 octobre 2012 - 23 août 2005 à 17:44
bijour

je travaille sur les fichiers ,et du a une comparaison de deux fichier g pensé au principe des tableaux ,donc g consideré une ligne d'un fichier comme une case de tableau mais mon programme se bloque sur la premiere ligne ..voici mon code ,svp dites moi pourkoi il considaire le fichier comme suivant:
g un ficihier txt :
aaaaaaa
bbbbbb
cccccc et qd je mets tab[i]=sr.ReadLine();
il le voit comme suit :
tab[0]=aaaaaaa
tab[1]=""
tab[2]=""
et qd g mis tab1[i]=sr1.ReadToEnd();
g eu ca :
tab[0]=aaaaaaa bbbbbbb ccccccc
tab[1]=""
.
.
mon code est le voici

StreamReader sr1 = File.OpenText(FILE_NAME1);


StreamReader sr2 = File.OpenText(FILE_NAME2);



string [] tab1=
new
string[FILE_NAME1.Length];



string [] tab2=
new
string[FILE_NAME2.Length];



for(
int i=0;i<FILE_NAME1.Length;i++)


{



for(
int j=0;j<FILE_NAME2.Length;j++)


{


tab1[i]=sr1.ReadLine();


tab2[i]=sr2.ReadLine();



if(tab2[i+j]!=tab1[i])


{



if(tab1[i]==tab2[i+j+1])


{


FileStream fichier1=
new FileStream("C:\\modifier1.txt",FileMode.Create,FileAccess.Write);


StreamWriter sw1 =
new StreamWriter(fichier1);


sw1.WriteLine(tab2[i+j].ToString());


sw1.Close();


fichier1.Close();


}



else


{


MessageBox.Show("aucune ligne n'est modifiée");


j++;


}



if(tab1[i+j+1]==tab2[i])


{


FileStream fichier2=
new FileStream("C:\\desinstaller.txt",FileMode.Create,FileAccess.Write);


StreamWriter sw2 =
new StreamWriter(fichier2);


sw2.WriteLine(tab1[i+j].ToString());


sw2.Close();


fichier2.Close();


}



else


{


MessageBox.Show("aucune ligne n'est desinstallée");


j++;


}


}



else


{


j++;


}


}



brek;


}


}

6 réponses

cs_RMI Messages postés 305 Date d'inscription vendredi 18 juillet 2003 Statut Membre Dernière intervention 2 août 2010 2
22 août 2005 à 17:20
Est ce que tu t'es apercu que la taille de tes tableaux correspond au nb de caractère du nom de tes fichiers.

Peux tu essayé d'indenter ton code pour comprendre quelque chose



ET STP peux tu écrire en français et pas en style SMS...

Théo
0
Lutinore Messages postés 3246 Date d'inscription lundi 25 avril 2005 Statut Membre Dernière intervention 27 octobre 2012 41
23 août 2005 à 01:09
Salut, c'est vrai que c'est pas très clair, petit rappel ReadLine lit une ligne et ReadToEnd lit jusqu'a la fin du fichier. Tu peux utiliser un ArrayList:

StreamReader sr = null;


try
{
string line = string.Empty; ArrayList list new ArrayList( ); // Capacity 16
sr = new StreamReader( FILE_NAME );


while ( ( line = sr.ReadLine( ) ) != null )
list.Add( line );


//string[ ] tab = ( string[ ] )list.ToArray( typeof( string ) );
}
finally
{
if ( sr != null )
sr.Close( );
}
0
sebmafate Messages postés 4936 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 14 février 2014 37
23 août 2005 à 09:16
voire plus simple.

string[] tab = sr.ReadToEnd().Split('\n');


<HR>
Sébastien FERRAND

Blog : http://blogs.developpeur.org/sebmafate
0
Lutinore Messages postés 3246 Date d'inscription lundi 25 avril 2005 Statut Membre Dernière intervention 27 octobre 2012 41
23 août 2005 à 16:50
L'idée est bien mais selon le format du fichier, tu as laissé le '\r' du délimiteur de nouvelle ligne ( "\r\n" ) à la fin de la ligne.
0

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

Posez votre question
sebmafate Messages postés 4936 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 14 février 2014 37
23 août 2005 à 16:52
c'est pas très grave...

string[] tab = sr.ReadToEnd().Replace("\r\n","\n").Split('\n');

c'est mieux ?


<HR>
Sébastien FERRAND

Blog : http://blogs.developpeur.org/sebmafate
0
Lutinore Messages postés 3246 Date d'inscription lundi 25 avril 2005 Statut Membre Dernière intervention 27 octobre 2012 41
23 août 2005 à 17:44
Viii
0
Rejoignez-nous