Comment lire un fichier et mettre les données de ce fichier dans un autre

dorine82 Messages postés 28 Date d'inscription mardi 10 juillet 2007 Statut Membre Dernière intervention 17 septembre 2007 - 10 août 2007 à 15:11
dorine82 Messages postés 28 Date d'inscription mardi 10 juillet 2007 Statut Membre Dernière intervention 17 septembre 2007 - 13 août 2007 à 13:06
salut  à tous,
j'ai un problème. je suis débutante en c# . je dois écrire un programme qui lit un fichier et transmet les données de ce fichier ligne par ligne dans un nouveau fichier crée.
pour lire le fichier c' est facile , j' ai su comment écrire la commande. l'aide que je souhaiterais maintenant c' est comment exporter ces données dans un nouveau fichier et ligne par ligne.
merci de votre aide.

8 réponses

NairodDorian Messages postés 130 Date d'inscription lundi 26 juin 2006 Statut Membre Dernière intervention 18 août 2008
10 août 2007 à 15:26
Je suppose que c'est un fichier texte si tu veux copier ligne par ligne.

try
{
   StreamReader sr = new StreamReader("C:\\fichier.txt");
   StreamWriter sw = new StreamWriter("C:\\autrefichier.txt");

   string ligne;
   while ((ligne = sr.ReadLine()) != null) {
      sw.WriteLine(ligne);
   }

   sr.Close();
   sw.Close();
}
catch (IOException )
{
   Console.WriteLine("Erreur entree sortie.");
}
0
dorine82 Messages postés 28 Date d'inscription mardi 10 juillet 2007 Statut Membre Dernière intervention 17 septembre 2007
10 août 2007 à 15:53
non ce n'est pas un fichier text mais csv. merci pour ton aide j'essaye pour voir si ca marche.
est ce qu' il serait possible que le nouveau fichier enregistre ces données là sur forme de tableau.
merci
0
NairodDorian Messages postés 130 Date d'inscription lundi 26 juin 2006 Statut Membre Dernière intervention 18 août 2008
10 août 2007 à 16:02
Quelle version du framework tu utilises ?
0
NairodDorian Messages postés 130 Date d'inscription lundi 26 juin 2006 Statut Membre Dernière intervention 18 août 2008
10 août 2007 à 16:19
using



System;


using



System.Collections.Generic;


using



System.IO;


using



System.Runtime.Serialization.Formatters.Binary;


namespace



ConsoleApplication1{


class



DataWriter

{







private



StreamReader
sr;


private



FileStream
fs;


private



List
<

string
> liste;


public
DataWriter(

string
strPath){

sr =


new



StreamReader
(strPath);fs =


new



FileStream
(

Directory
.GetParent(strPath) +

"\\copie.cvs"
,

FileMode
.Create,

FileAccess
.Write);liste =


new



List
<

string
>();}


public



bool
Copier(){


try

{







BinaryFormatter
bf =

new



BinaryFormatter
();


string
strline;


while
(!sr.EndOfStream){

strline = sr.ReadLine();


string
[] tableau = strline.Split(

';'
);


for
(

int
i = 0; i < tableau.Length; i++){

liste.Add(tableau[i]);

}

}

bf.Serialize(fs, (


object
)liste);fs.Close();

sr.Close();


return



true
;}


catch
(

IOException
){


return



false
;}

}

}


class



DataReader

{







private



FileStream
fs;


private



List
<

string
> liste;


public
DataReader(

string
strPath){

fs =


new



FileStream
(strPath,

FileMode
.Open,

FileAccess
.Read);}


public



bool
Charger(){


BinaryFormatter
bf =

new



BinaryFormatter
();


try

{


liste = (




List
<

string
>)bf.Deserialize(fs);


return



true
;}


catch
(

IOException
){


return



false
;}

}


public



List
<

string
> _donnees{


get

{







return
liste;}

}

}


class



Program

{







static



void
Main(

string
[] args){


if
(

new



DataWriter
(

"C:\\test.cvs"
).Copier()){


Console
.WriteLine(

"Enregistrement ok"
);}


else

{







Console
.WriteLine(

"Impossible d'enregistrer !"
);


return
;}


DataReader
dr =

new



DataReader
(

"C:\\copie.cvs"
);


if
(dr.Charger()){


Console
.WriteLine(

"OK"
);


List
<

string
> liste = dr._donnees;


for
(

int
i = 0; i < liste.Count; i++)


Console
.WriteLine(liste[i]);}


else

{







Console
.WriteLine(

"Erreur !"
);}

}

}

}

Copier coller et c'est gagne !\

PS : Je suppose que tu utilises .NET version >= 2 sinon remplace List<string> par ArrayList...
0

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

Posez votre question
dorine82 Messages postés 28 Date d'inscription mardi 10 juillet 2007 Statut Membre Dernière intervention 17 septembre 2007
10 août 2007 à 16:45
merci pour ton aide. je teste et je te fais signe lundi.
une fois de plus merci
0
econs Messages postés 4030 Date d'inscription mardi 13 mai 2003 Statut Membre Dernière intervention 23 décembre 2008 24
10 août 2007 à 22:20
Salut,

dorine82 > Pour info, un fichier CSV est un fichier texte. Il se lit donc parfaitement, ligne par ligne, comme l'indiquait NairodDorian

Manu
--------------------------------------------------------------------------------------------
Avant de poster un message, n'oubliez pas de consulter le reglement.
0
dorine82 Messages postés 28 Date d'inscription mardi 10 juillet 2007 Statut Membre Dernière intervention 17 septembre 2007
13 août 2007 à 12:16
Merci NairodDorian ,
ca fonctionne parfaitement.
mille merci
0
dorine82 Messages postés 28 Date d'inscription mardi 10 juillet 2007 Statut Membre Dernière intervention 17 septembre 2007
13 août 2007 à 13:06
Salut,





Une fois de plus,
j’ai besoin de votre aide.





Comme je vous
disais la dernière fois, je suis débutante en c#. Au boulot mon chef m’a donné
un travail qui est le suivant :





Je dois lire à  partir d’ un fichier .CSV certaines données
qui y sont contenus et les enregistrer sur active directory.





Au tout début, j’
ai écrit un programme qui fait une recherche dans active directory et quand le résultat
est trouvé il affecte le numéro de téléphone au user trouvé.





Mais le problème
qui se pose maintenant c’est que je dois travailler avec ce fichier.





Et donc je dois
lire le fichier, faire une recherche dans ce fichier et quand ce que je
cherche( qui est ici le nom de l’employé)  a été trouvé, je lui affecte un numéro de téléphone dans active
directory  et a la fin donc j’
enregistre.






<!--[if !supportEmptyParas]--> <!--[endif]-->





Est-ce que vous
croyez que un tel projet est possible ? Si oui quelle est la méthode à
suivre pour écrire le code ? Car je ne sais vraiment pas par quoi
commencer.






<!--[if !supportEmptyParas]--> <!--[endif]-->





Merci infiniment
pour votre aide






<!--[if !supportEmptyParas]--> <!--[endif]-->





dorine
0
Rejoignez-nous