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

Messages postés
6
Date d'inscription
mercredi 24 août 2011
Statut
Membre
Dernière intervention
22 octobre 2011
- - Dernière réponse : NHenry
Messages postés
14522
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
12 août 2019
- 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
Afficher la suite 

7 réponses

Meilleure réponse
Messages postés
14522
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
12 août 2019
133
3
Merci
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

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 126 internautes nous ont dit merci ce mois-ci

Commenter la réponse de NHenry
Messages postés
14522
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
12 août 2019
133
0
Merci
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
Commenter la réponse de NHenry
Messages postés
6
Date d'inscription
mercredi 24 août 2011
Statut
Membre
Dernière intervention
22 octobre 2011
0
Merci
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;

       }
Commenter la réponse de Mannoulti
Messages postés
6
Date d'inscription
mercredi 24 août 2011
Statut
Membre
Dernière intervention
22 octobre 2011
0
Merci
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 :)
Commenter la réponse de Mannoulti
Messages postés
6
Date d'inscription
mercredi 24 août 2011
Statut
Membre
Dernière intervention
22 octobre 2011
0
Merci
merci beaucoup, j'ai bien résolu mon problème
Commenter la réponse de Mannoulti
Messages postés
1
Date d'inscription
mardi 2 mars 2010
Statut
Membre
Dernière intervention
30 août 2011
0
Merci
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
Commenter la réponse de wafayoussef
Messages postés
14522
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
12 août 2019
133
0
Merci
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
Commenter la réponse de NHenry