J'ai fait un sous-programme permettant de lire un fichier .txt, récupérer les informations séparées par des ";" et il lit tout le fichier ligne par ligne.
Cependant, le programme bloque lorsqu'il tombe sur une ligne vide.
Comment faire pour que le programme ignore cette ligne vide ou la supprime ?
Voici mon code :
public static void SPLITTING_FICHIER_DATA(string Chemin_Fichier)
{
StreamReader SR;
string[] Split_Ligne;
SR = new StreamReader(Chemin_Fichier);
Liste = new ArrayList();
Ligne = SR.ReadLine();
while (Ligne != null)
{
if (Ligne.Equals("") == false)
{
Split_Ligne = Ligne.Split(';');
Liste.Add(Split_Ligne);
Ligne = SR.ReadLine();
}
}
}
je ne suis pas un bon programmeur en C# mais je pense que le code doit ressembler a ça :
while (Ligne != null)
{
if (Ligne.Equals("") == false)
{
Split_Ligne = Ligne.Split(';');
Liste.Add(Split_Ligne);
Ligne = SR.ReadLine();
}
else {
Ligne = SR.ReadLine();
}
}
Ton code va surement planter puisqu'il n'y a pas de relecture de ligne quand la dernière ligne est vide et que c'est toujours cette dernière ligne que ton boucle va tester jusqu'à la fin des temps.
salut j'ai un probleme si vous pouvez m'aider ,dans mon code je crée une structure que je met dans un fichier texte et je crée une fonction recherche mais elle me ne renvoie que la derniere structure que j'ai entrée je sais pas pourquoi?
typedef struct _film {
int ind;
char nomf[30];
}film;
void rechercher_fich(char *chaine)
{
film s;
int k;
f=fopen(chaine,"r");
printf("\ndonner la semaine :");
scanf("%d",&s.ind);
while(!feof(f))
{
fread(&s,sizeof(film),1,f);
if(k == s.ind)
break ;
}
printf("la semaine :%d\tnom du film :%s",s.ind,s.nomf);
fclose(f);
}