Récupérer des informations a partir d'un fichier txt en c#

Résolu
Mannoulti Messages postés 6 Date d'inscription mercredi 24 août 2011 Statut Membre Dernière intervention 22 octobre 2011 - 24 août 2011 à 18:06
NHenry Messages postés 15110 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 6 avril 2024 - 30 août 2011 à 19:30
Bonjour,j'ai une problème pour récupérer des lignes et des informations en C#(pour les mettre dans des textboxs dans une fenêtre)à partir d'un fichier texte sachant que ce fichier n'a pas une taille fixe puisque à chaque instant il reçoit une notification a partir d'un autre programme, SVP aidez moi

7 réponses

NHenry Messages postés 15110 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 6 avril 2024 159
24 août 2011 à 23:50
Bonjour,

Je pense qu'il faut prendre le problème d'une autre manière, 2 propositions :
Dans les 2 cas, extraire l'ensemble des lignes du fichiers s'avérera utile (Io.Fil.ReadAllLines)

Soit extraire l'ensemble des résultats et les mettre dans une collection d'objet (Donc les objets extraient les données et retire les données lues)
Cette approche offre plus d'ouverture et un coup de LINQ ou de recherche manuelle et ça passera facilement.

Sinon, Passer l'ensemble des lignes dans un tableau, noter l'emplacement de la première ligne correspondante au dernier bloc Mauvais trouvé, comme ça, tu passe du début à la fin, et une fois tout ton tableau passé, tu connais le bloc à lire.

Est-ce assez clair ?

---------------------------------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS et aussi ce lien[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : )
[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés./list
---
Mon site
3
NHenry Messages postés 15110 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 6 avril 2024 159
24 août 2011 à 18:33
Bonjour,

Oui, tu as fais quoi comme code à présent ? (voir point 2 dans ma signature)
Sur quel point exacte tu bloques ?

---------------------------------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS et aussi ce lien[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : )
[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés./list
---
Mon site
0
Mannoulti Messages postés 6 Date d'inscription mercredi 24 août 2011 Statut Membre Dernière intervention 22 octobre 2011
24 août 2011 à 22:08
bonjour, merci pour votre attention,
voila mon fichier txt:
Bon,4G1 971 072 EN
Etat:Bon
Variante:4G1971072EN0402111B
Id_Cablage:110630164742G732
Date de dessin:04.02.11
Index:1B
Date de production:01:07:2011
Heure:07:40
Groupe:000-19408
Table: 247
NR_Cablage: 110630164742G732
Tabelle Nr:
Nr Personnel du C.E.:19408
Nr Personnel du Montage:18408M
Nr Personnel d'Ultrason:17733U
Nr Personnel du CR:12262CR
Nr Personnel du AKL:18771A
Nr Personnel du Bandage :07675B
Nr Personnel du Schaum:09928S
Nr Personnel du Controle Clip:7820L
Nr Personnel de reparation :00000R
Nombre d essaies: 2

Mauvais,4G1 971 072 ET
Etat:Mauvais
Variante:4G1971072ET0402111B
Id_Cablage:110630135520G791
Date de dessin:04.02.11
Index:1B
Date de production:01:07:2011
Heure:05:48
Groupe:000-19408
Table: 247
NR_Cablage: 110630135520G791
Tabelle Nr:
Nr Personnel du C.E.:19408
Nr Personnel du Montage:19536M
Nr Personnel d'Ultrason:07845U
Nr Personnel du CR:17598CR
Nr Personnel du AKL:18583A
Nr Personnel du Bandage :07963B
Nr Personnel du Schaum:19358S
Nr Personnel du Controle Clip:7820L
Nr Personnel de reparation :00000R
Nombre d essaies: 2
mon problème sert à extraire le NR_cablage, Table et Nr personnel du C.E du dernier état Mauvais reçu dans le fichier pour les mettre dans une fenêtre, alors j'ai essayé d'extraire premièrement le le NR Table mais il me rend le premier numéro de la table rencontré sans intéresser sur la dernière état mauvais que je le cherche voilà mon code:

public String numéroTable()
       {
           String num = "";

           try
           {
               StreamReader sr = new StreamReader("C:\\P247.txt");
               String line = sr.ReadLine();


               while (line != null)
               {
                   if (line.Contains("Table"))
                   {
                       String[] mots = line.Split(':');
                       num= mots[1];
                   }
                   line = sr.ReadLine();


               }

               sr.Close();
               Console.ReadLine();
           }
           catch (Exception e)
           {
               Console.WriteLine("Exception:" + e.Message);
           }
           {
               Console.WriteLine("Executing finally bloc.");

           }
           return num;

       }
0
Mannoulti Messages postés 6 Date d'inscription mercredi 24 août 2011 Statut Membre Dernière intervention 22 octobre 2011
25 août 2011 à 00:40
merci bien pour votre aide, je vais essayer la dernière méthode(passer les lignes dans un tableau) et j’espère que ça marche :)
0

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

Posez votre question
Mannoulti Messages postés 6 Date d'inscription mercredi 24 août 2011 Statut Membre Dernière intervention 22 octobre 2011
25 août 2011 à 03:46
merci beaucoup, j'ai bien résolu mon problème
0
wafayoussef Messages postés 1 Date d'inscription mardi 2 mars 2010 Statut Membre Dernière intervention 30 août 2011
30 août 2011 à 00:45
pour le même thème j'ai des données à récupérer d'un fichier texte
ces données ressemble à ça
a|b|c|d|f
e
j'ai procédé ainsi pour les récupérer
string id = read.Split('|')[0];
string dh = read.Split('|')[1];
string source = read.Split('|')[2];
string destination = read.Split('|')[3];
string type = read.Split('|')[4];
string note = read.Split('\n')[5];
textBox1.Text = id;
textBox2.Text = dh;
textBox3.Text = source;
textBox4.Text = destination;
textBox5.Text = type;
textBox6.Text = note;
ca marche mais le probleme se pose pour la derniere donnée parcque elle n'est pas recupérée et je ne sais pas d'ou viens le probleme
0
NHenry Messages postés 15110 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 6 avril 2024 159
30 août 2011 à 19:30
Bonjour,

Si read représente la ligne, tu peux mémoriser le Split, puis utiliser le tableau fourni au lieu d'utiliser Split à chaque fois, ça accellera le code.

Si j'ai bien compris,
string note = read.Split('\n')[5];
C'est pour récupérer le e qui se trouve sur la ligna suivante, alors pourquoi ne pas directement lire la ligne suivante ?

---------------------------------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS et aussi ce lien[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : )
[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés./list
---
Mon site
0
Rejoignez-nous