Remplir base de donné a partir d'un fichier .log

Signaler
Messages postés
16
Date d'inscription
jeudi 3 février 2005
Statut
Membre
Dernière intervention
2 juin 2005
-
Messages postés
131
Date d'inscription
jeudi 17 juin 2004
Statut
Membre
Dernière intervention
7 juillet 2005
-
bonjour, je dois lire un fichier log et remplir une base sqlServer
j'utilise c# et j'ai un problème avec l'utilisation de mes
flux filestream,streamwriter et streamreader
merci

14 réponses

Messages postés
131
Date d'inscription
jeudi 17 juin 2004
Statut
Membre
Dernière intervention
7 juillet 2005

Bonjour,

Tu peux etre plus précis sur l'erreur ( code ...)

hum.......
Messages postés
16
Date d'inscription
jeudi 3 février 2005
Statut
Membre
Dernière intervention
2 juin 2005

//fildialdonnéchificlog==boite de dialogue dont je recupere le chemin complet
de ma base de donnée


FileStream fichier=
new System.IO.FileStream
(filDialDonnéChoiFicLog.FileName.ToString(),System.IO.FileMode.OpenOrCreate);


StreamWriter ecrit=
new StreamWriter(fichier);

//fildialdonnéchoificlog==boite de dialogue
dont je recupere le chemin du fichier.log a lire
StreamReader lect=
new StreamReader(filDialDonnéChoiFicLog.FileName.ToString());

while(lect.ToString()!="")
{
ecrit.WriteLine(lect);
lect.ReadLine();
}

merci d'avance.
Messages postés
131
Date d'inscription
jeudi 17 juin 2004
Statut
Membre
Dernière intervention
7 juillet 2005

tu n'as pas besoin de mettre tostring. et met le mode d'acces

FileStream fichier=
new System.IO.FileStream
(filDialDonnéChoiFicLog.FileName,System.IO.FileMode.OpenOrCreate,FileAccess.Read
);


inutile si tu fais que de la lecture
StreamWriter ecrit=new StreamWriter(fichier);

string sTamponDeLecture;
StreamReader lect=
new StreamReader(fichier);

{
sTamponDeLecture = lect.ReadLine();

}

Essaye un truc du genre

hum.......
Messages postés
131
Date d'inscription
jeudi 17 juin 2004
Statut
Membre
Dernière intervention
7 juillet 2005

oups la boucle while ( biensus faut que tu la mette ) à disparu mais avec un test comme tu faisais ca peut poser des pb tout dépend de ton fichier.

hum.......
Messages postés
16
Date d'inscription
jeudi 3 février 2005
Statut
Membre
Dernière intervention
2 juin 2005

merci, mais aprés je dois ecrire chaque ligne dans une base de donnée...
désolé je débute
Messages postés
131
Date d'inscription
jeudi 17 juin 2004
Statut
Membre
Dernière intervention
7 juillet 2005

La c'est plus chaud, tu t'es renseigné avant sur le mode fonctionnement des bases données ( connection, requetes, ... )

hum.......
Messages postés
16
Date d'inscription
jeudi 3 février 2005
Statut
Membre
Dernière intervention
2 juin 2005

oui,j'ai un sqlconnection,sqladapter et dataset.
le fichier de ma base de donnée sql doit bien avoir une extension .mdf ?
je ne sais pas comment gérer le flux d'écriture en meme temps que le flux de lecture
pourrai tu déja m'aider a écrire non pas dans base de donnée mais dans un second fichier log
chaque ligne de mon fichier log initiale
merci
mook.
Messages postés
131
Date d'inscription
jeudi 17 juin 2004
Statut
Membre
Dernière intervention
7 juillet 2005

Et si tu recopiais directement ton fichier log sous un autre nom ? ou tu veux supprimer des choses dans ton fichier log ?

hum.......
Messages postés
16
Date d'inscription
jeudi 3 février 2005
Statut
Membre
Dernière intervention
2 juin 2005

c bon j'ai trouvé comment ecrire les lignes du premiers fichier.log dans le deuxième:


FileStream fichier=
new System.IO.FileStream(filDialDonnéChoiFicLog.FileName,System.IO.FileMode.OpenOrCreate,FileAccess.Read);



string ligne;


StreamReader lect=
new StreamReader(fichier);


ligne=lect.ReadLine();



while(ligne!=
null)


{
ecrire(ligne);
ligne = lect.ReadLine();
}
}



public
void ecrire(
string ligne)


{
FileStream fichier=
new System.IO.FileStream(fildialDonnéchoiBdd.FileName,System.IO.FileMode.Append,FileAccess.Write);
StreamWriter ecrit=
new StreamWriter(fichier);
ecrit.WriteLine(ligne);
ecrit.Close();
}
Messages postés
16
Date d'inscription
jeudi 3 février 2005
Statut
Membre
Dernière intervention
2 juin 2005

c bon j'ai trouvé comment ecrire les lignes du premiers fichier.log dans le deuxième:


FileStream fichier=
new System.IO.FileStream(filDialDonnéChoiFicLog.FileName,System.IO.FileMode.OpenOrCreate,FileAccess.Read);



string ligne;


StreamReader lect=
new StreamReader(fichier);


ligne=lect.ReadLine();



while(ligne!=
null)


{
ecrire(ligne);
ligne = lect.ReadLine();
}
}



public
void ecrire(
string ligne)


{
FileStream fichier=
new System.IO.FileStream(fildialDonnéchoiBdd.FileName,System.IO.FileMode.Append,FileAccess.Write);
StreamWriter ecrit=
new StreamWriter(fichier);
ecrit.WriteLine(ligne);
ecrit.Close();
}
Messages postés
16
Date d'inscription
jeudi 3 février 2005
Statut
Membre
Dernière intervention
2 juin 2005

il ne reste maintenant plus qu'a cherché comment ecrire dans la base sql
avec le sqldatadapter...
merci.
Messages postés
131
Date d'inscription
jeudi 17 juin 2004
Statut
Membre
Dernière intervention
7 juillet 2005

à ta place je ferais plutot quelque chose comme ca :

FileStream fichierLog
=new System.IO.FileStream(filDialDonnéChoiFicLog.FileName,System.IO.FileMode.OpenOrCreate,FileAccess.Read);


StreamReader lect=new StreamReader(fichierLog);



FileStream fichierBDD=
new System.IO.FileStream(fildialDonnéchoiBdd.FileName,System.IO.FileMode.Append,FileAccess.Write);
StreamWriter ecrit=new
StreamWriter(fichierBDD);

string ligne;


ligne=lect.ReadLine();


while(ligne!=null)
{
ecrit.WriteLine(ligne);
ligne = lect.ReadLine();
}
Concernant la boucle il doit y avoir plus simple avec la position...

et surtout n'oublie pas de fermer tous tes flux
ecrit.Close();
lect.Close();
fichierLog.Close();
fichierBDD.Close();

hum.......
Messages postés
16
Date d'inscription
jeudi 3 février 2005
Statut
Membre
Dernière intervention
2 juin 2005

ca na pas marché apparemment il faut utiliser le datadapter et la command insert de ce dernier.
mais on dirait que l'instruction sql ne parvient pas a ma base??
je ne sais plus quoi faire!
Messages postés
131
Date d'inscription
jeudi 17 juin 2004
Statut
Membre
Dernière intervention
7 juillet 2005

Déjà créer un autre sujet pour exposer ton probleme

hum.......