Problème readline

Signaler
Messages postés
48
Date d'inscription
lundi 4 janvier 2010
Statut
Membre
Dernière intervention
4 février 2010
-
Messages postés
48
Date d'inscription
lundi 4 janvier 2010
Statut
Membre
Dernière intervention
4 février 2010
-
Voila j'ai une procédure qui me permet de parcourir les lignes d'un fichier :

while ((ligne = sr.ReadLine()) != null)
                {
                    lineNumber++;
                    if (ligne.Contains("ERROR"))
                    {
                        string va_mot;
                        va_mot = ligne.Substring(0, 1);
                        va1 = ligne.Substring(0, 4);
                        va2 = ligne.Substring(4, 2);
                        va3 = ligne.Substring(6, 2);
                        va4 = va3 + "/" + va2 + "/" + va1;
                        va5 = ligne.Substring(9, 8);
                        va6 = ligne.Substring(17);
                        listeErreurs.Add(string.Format("{0}\t{1}\t{2}\t      {3}", lineNumber, va4, va5, va6));
                        traitement ligne suivante
                        
                    }
                }


Ce que je voudrai c'est au niveau du traitement ligne suivante exécuté un traitement qui me permettrai d'aller a la ligne et de dire que si cette ligne débute par " " alors on l'ajoute a listeErreur. J'ai essayer plusieurs chose mais sans trouver la solution.

Merci d'avance.

6 réponses

Messages postés
48
Date d'inscription
lundi 4 janvier 2010
Statut
Membre
Dernière intervention
4 février 2010

Plus précisément je voudrai que tant que les lignes suivantes commencent par " " alors on les ajoute a listeErreur.
Messages postés
48
Date d'inscription
lundi 4 janvier 2010
Statut
Membre
Dernière intervention
4 février 2010

help plz
Messages postés
48
Date d'inscription
lundi 4 janvier 2010
Statut
Membre
Dernière intervention
4 février 2010

quelqu'un aurait une idée par hasard svp???
Messages postés
5487
Date d'inscription
dimanche 4 août 2002
Statut
Modérateur
Dernière intervention
20 juin 2013
49
euh... if(line.StartWith(' ')) peut-être ?


[hr]
-Site personnel-
-Blog-
Messages postés
48
Date d'inscription
lundi 4 janvier 2010
Statut
Membre
Dernière intervention
4 février 2010

merci pour ta réponse.

Effectivement cette ligne que tu me donne elle apparaitra dans le traitement mais ce que je voudrai savoir c'est comment je peux dire que des lors que le mot "ERROR" est trouvé dans une ligne alors on va a la ligne et on regarde si la ligne débute par " ". C'est ce "aller a la ligne" que je n'arrive pas a coder.
Messages postés
48
Date d'inscription
lundi 4 janvier 2010
Statut
Membre
Dernière intervention
4 février 2010

voila c'est bon j'ai trouver la solution, j'ai utiliser un booleen flag qui est a true lorsque ERROR apparait dans une ligne et a false lorsqu'une ligne comme par "2" qui est le 1er caractère d'une date (2010/01/01, toutes les lignes commencent de cette facon sauf celle situé aprés une erreur et quelques autre lignes)

Je post le code si jamais quelqu'un a se problème :

while ((ligne = sr.ReadLine()) != null)
                    {
                        lineNumber++;
                        if(ligne.StartsWith("2"))
                        {
                            flag = false;
                        }

                        if (flag == true)
                        {
                            listeErreurs.Add(string.Format("{0:0000000}/t{1}", lineNumber, ligne));
                        }
                        else
                        {
                        if (ligne.Contains(listView1.Items[i].Text))
                        {
                            flag = true;
                            va1 = ligne.Substring(0, 4);
                            va2 = ligne.Substring(4, 2);
                            va3 = ligne.Substring(6, 2);
                            va4 = va3 + "/" + va2 + "/" + va1;
                            va5 = ligne.Substring(9, 8);
                            va6 = ligne.Substring(17);
                            listeErreurs.Add(string.Format("{0:0000000}\t{1}\t{2}\t      {3}", lineNumber, va4, " " + va5, va6));
                            listeErreurs.Sort();
                            
                        }
                        }
                        Cursor.Current = Cursors.AppStarting;
                    }
                    sr.Close();


voila merci pour votre aide !