begin process at 2010 02 10 05:38:14
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C#

 > 

Système

 > 

Fichier & Disque

 > 

lecture de ligne dans un fichier texte


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

lecture de ligne dans un fichier texte

lundi 20 août 2007 à 14:31:37 | lecture de ligne dans un fichier texte

yabiyou

Bonjour,


je suis grand débutant en C # et je n'arrrive pas à lire un fichier texte.
Je voudrais stocker chaque ligne dans l'élément n°i d'un tableau pour le fichier que j'ai préalablement sélectionner, openfiledialog1.filenames(2) par exemple




 

using

System;

using

System.Collections.Generic;

using

System.ComponentModel;

using

System.Data;

using

System.Drawing;

using

System.Text;

using

System.Windows.Forms;

using

System.IO;

 

namespace

test

{

publicpartialclassForm1 : Form

{

   public Form1()

   {

      InitializeComponent();

   }

 

   privatevoid button1_Click(object sender, EventArgs e)

   {

      openFileDialog1.DefaultExt =

"txt";

      openFileDialog1.Filter =

"TXT files (*.txt)|*.txt|All files (*.*)|*.*";

      openFileDialog1.Title =

"Select input txt file";

      openFileDialog1.Multiselect = true;

      openFileDialog1.FileName = Input.Text;

      if (openFileDialog1.ShowDialog() == DialogResult.OK)

         {

         Input.Text = Path.Combine(Path.GetDirectoryName(Input.Text), Path.GetFileNameWithoutExtension(Input.Text) + ".out" + Path.GetExtension(Input.Text));

}

 

}

 

}

}

}

lundi 20 août 2007 à 14:55:48 | Re : lecture de ligne dans un fichier texte

tomlev

Je ne suis pas sûr de bien comprendre ton problème... tu cherches à obtenir la liste des fichiers sélectionnés, ou à lire le contenu de ces fichiers ?

Tu peux obtenir les chemins d'accès des fichiers en faisant un foreach sur la collection Filenames du dialogue :
    foreach (string filename in openFileDialog1.Filenames)
    {
       // faire qqch avec filename
    }

Pour lire le contenu d'un fichier donné, tu peux faire comme ça :
    StreamReader rd = new StreamReader(filename);
    string line;
    while ((line = rd.ReadLine()) != null)
    {
       // faire qqch avec line
    }
    rd.Close();
lundi 20 août 2007 à 15:23:42 | Re : lecture de ligne dans un fichier texte

yabiyou

Je n'ai peut être pas été assez clair.
En fait j'ai plusieurs fichiers textes organisés par lignes de la forme

A=4.566 B=6.333 C=7.555
A=8.555 B=6.331 C=9.336
A=7.556 B=9.565 C=8.246
etc

Je veux pouvoir lire des fichiers et en extraire 3 tableaux A, B et C contenant les valeurs numériques associées.
De plus je veux aussi faire une multiselection qui me classe par ordre alphabétique les fichiers qui sont numérotés TM1, TM2, TM3 etc et effecture l'opération précédente pour obtenir des "grands" tableaux contenant les valeurs de A, B et C de l'ensemble des fichiers sélectionné

voili voilou


lundi 20 août 2007 à 16:32:08 | Re : lecture de ligne dans un fichier texte

bernie666

Réponse acceptée !
Salut,

   //declaration du fichier a parcourir
   StreamReader unFic = new StreamReader(unChemin);
   //declaration d'une variable intermediare qui va recuperer chaque streemReader.readline()
   String ligne;
   //on parcour le fichier tant qu'on a des enregistrement
   while((ligne = unFic.ReadLine()) != null)
   {
    //et on affecte chaque ligne du fichier a la collection
    //ici tu va récuperer la ligne de ton fichier vu que le caractere séparateur est un espace tu fais un split sur la ligne         pour voir   un    tableau de 3 caracteres => tu parcour ce tableau et tu le dispatch entre les 3 autres tableaux qui contiennent les valeures A , B , C
   } 
   unFic.Close();



-------------------------------------------
http://quoideneufaujourdhui.spaces.live.com
lundi 20 août 2007 à 16:37:06 | Re : lecture de ligne dans un fichier texte

tomlev

Réponse acceptée !
OK...

D'abord, vu que les valeurs A, B et C sont associées, je pense qu'il vaudrait mieux créer une structure pour les regrouper sous forme de triplets, par exemple :

    struct Triplet
    {
        public double A;
        public double B;
        public double C;
    }

Ensuite tu manipuleras un tableau de triplets plutot que 3 tableaux. Vu que tu ne connais pas à l'avance le nombre de ligne, il vaut mieux utiliser une liste dynamique de triplets :
List<Triplet> liste = new List<Triplet>();

Pour l'algorithme global, tu peux faire un truc comme ca :

Initialiser la liste;
Pour chaque fichier sélectionné
{
    Pour chaque ligne dans le fichier
    {
       Lire les valeurs (en utilisant String.Split);
       Créer un nouveau triplet t avec ces valeurs;
       Ajouter t à la liste ( liste.Add(t) );
    }
}



mardi 21 août 2007 à 10:53:55 | Re : lecture de ligne dans un fichier texte

yabiyou

Merci pour les réponses!!

Mais je ne comprend pas bien ce qui est stocker dans ligne. Il s'agit d'un tableau, d'une chaine de caractères... Quand j'essaie d'afficher sa valeur dans une TextBaox il n'y a rien.

StreamReader

sr = new StreamReader (Nomfichier[0]);

String ligne;

while ((ligne = sr.ReadLine()) != null )

{

ligne = sr.ReadLine();

}

sr.Close();

 

Box.Text = ligne;

mardi 21 août 2007 à 10:53:56 | Re : lecture de ligne dans un fichier texte

yabiyou

Merci pour les réponses!!

Mais je ne comprend pas bien ce qui est stocker dans ligne. Il s'agit d'un tableau, d'une chaine de caractères... Quand j'essaie d'afficher sa valeur dans une TextBaox il n'y a rien.

StreamReader

sr = new StreamReader (Nomfichier[0]);

String ligne;

while ((ligne = sr.ReadLine()) != null )

{

ligne = sr.ReadLine();

}

sr.Close();

 

Box.Text = ligne;

mardi 21 août 2007 à 14:55:43 | Re : lecture de ligne dans un fichier texte

tomlev

La fonction StreamReader.ReadLine() lit une ligne du fichier tant que la fin du fichier n'est pas atteinte. Elle renvoie une chaine de caractère (string), par exemple "A=4.566 B=6.333 C=7.555". Quand la fin du fichier est atteinte, la fonction renvoie null (d'où le test dans le while)


Cette discussion est classée dans : input, text, system, using, openfiledialog1


Répondre à ce message

Sujets en rapport avec ce message

Problème de bouton [ par TmDsbsBs ] J'ai une liste déroute dans laquelle je choisis une ligne, et je valide par OK. Ensuite, j'ai une seconde liste déroulante ainsi qu'un nouveau bouton Problème avec WMI [ par el_filosof ] Bonjour,Je travaille avec le framework 2.0, et je developpe une application qui récupère des infos sur les process grace a WMI. J'ai deux problèmes:   C# : techniques de programmation. [ par Evil_Gouki_X ] Bonjour a tous.voila j'ai debute C# il y a quleques heures et j'ai une question sur les techniques de programmation. j'ai fait une recherche mais je n afficher le contenue d'un textbox [ par cliantusse ] cliantusse Bonjour,j'ai deux forms, la 1ere contient un  textbox et un label, la 2eme c c# enregistrement base de donnés acces [ par benjion ] Bonjour j'aurai voulu savoir les etapes a suivre pour enregistrer la valeur d'une textbox d'un form dans une base de donné( nom de la base = fromage connection base [ par fayrous ] Salut, voila mon code using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using Sys connection de la base donnée [ par fayrous ] Salut je suis débutant en c# je ne sais pas comment faire une connection à la base . j'ai essayé mais il existe une erreur voila le code using Sy Incapable d'envoyer des emails en me servant d'un serveur SMTP en C# via Visual Studio 2005 [ par likemuz25 ] Bonjour, je suis présentement en entreprise et il faut que je développe un système qui permet d'envoyer des emails.J'ai fais plusieurs recherche (auta HyperTerminal pour Windows CE [ par chindji ] Bonjour! Je suis un débutant en C# et Windows CE. Actuellement je programme un HyperTerminal pour Windows CE . Mais je ne comprends pas grand chose.


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,390 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales