Question sur ecrire localisée précisement dans un txt, log, ini ?

Tyrell2 Messages postés 251 Date d'inscription samedi 19 novembre 2005 Statut Membre Dernière intervention 2 novembre 2010 - 20 sept. 2008 à 20:06
alosamoelle Messages postés 129 Date d'inscription jeudi 28 octobre 2004 Statut Membre Dernière intervention 23 mai 2009 - 21 sept. 2008 à 13:57
Bonjour,

lire un fichier txt, log ou ini c'est plutot facile.. par exemple j'utilise ceci pour l'afficher dans une listbox :

Me.ListBox1.Items.AddRange(System.IO.File.ReadAllLines(
"c:\test.ini", System.Text.Encoding.Default))
De meme il est facile d'ajouter une ligne dans le fichier (quelquesoit l'extension) :

Dim file
As StreamWriter =
New StreamWriter(
"c:\test.ini",
True)
file.WriteLine(
"Test d'ecriture " & System.DateTime.Now)
file.Close()
Mais cette ligne s'ecrit forcement à la fin du fichier ouvert.

Donc c'est là que mes competences s'arretent et que vient chercher de l'aide (et c'est pas faute d'avoir chercher avant mais j'ai pas trouvé...).

comment faire pour ecrire une ligne dans une fichier, MAIS à un endroit precis du fichier et pas juste forcement à la fin du fichier ?
par exemple en precisant le numero de la ligne voulu ou en se basant sur une partie du texte existant dans le fichier ?

Merci d'avance.

_____________
 (débutant inside)

6 réponses

alosamoelle Messages postés 129 Date d'inscription jeudi 28 octobre 2004 Statut Membre Dernière intervention 23 mai 2009 1
20 sept. 2008 à 21:08
Bonjour,
il suffit de lire le fichier ligne par ligne et de compter les lignes.
Puis tu inseres la tienne quand tu le veux.
Tu trouveras plein d'exemple en cherchant lire un fichier texte par ligne.
Bon courage
0
cs_thierry la fronde Messages postés 351 Date d'inscription mercredi 21 juillet 2004 Statut Membre Dernière intervention 12 août 2009
21 sept. 2008 à 12:13
Bonjour,

Dim file
As StreamWriter =
New StreamWriter(
"c:\test.ini",
True) ' le true signifie que la propriété append est vrai tu autorise l'écriture à la fin du fichier.

pour écrire sur la première ligne enlève le true ou bien met false

thierry la fronde
0
cs_thierry la fronde Messages postés 351 Date d'inscription mercredi 21 juillet 2004 Statut Membre Dernière intervention 12 août 2009
21 sept. 2008 à 12:24
Pour récupérer la position pour écrire à un endroit spécifique, il faut d'abord faire les recherches avec un objet StreamReader (par exemple)

thierry la fronde
0
Tyrell2 Messages postés 251 Date d'inscription samedi 19 novembre 2005 Statut Membre Dernière intervention 2 novembre 2010
21 sept. 2008 à 12:29
alomoelle => lire ligne par ligne j'ai trouvé mais il reste un os : je ne sais pas ecrire sur une ligne précise

Merci Thierry la fronde (et tes compagnons :-) ) pour cette info

maintenant je sais ecrire à la fin ou au debut d'un fichier mais pas à un numero de ligne precise (j'ai malheureusement pas encore le niveau pour bien decoder les exemples de codes proposés ici ou ailleurs)

merci de m'aider encore un peu...
_____________
 (débutant inside)
0

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

Posez votre question
Tyrell2 Messages postés 251 Date d'inscription samedi 19 novembre 2005 Statut Membre Dernière intervention 2 novembre 2010
21 sept. 2008 à 12:37
menfin il ya quand meme un danger à enlever le "true" ou mettre "false" thierry,
c'est que si ça ecrit bien au debut, ça efface aussi tout le reste du texte déja present dans le fichier
donc pas bien...  

_____________
 (débutant inside)
0
alosamoelle Messages postés 129 Date d'inscription jeudi 28 octobre 2004 Statut Membre Dernière intervention 23 mai 2009 1
21 sept. 2008 à 13:57
Dans la boucle il faut compter les lignes du style nbdeligne = nbdeligne+ 1
ensuite if nbdeligne= taligne then ecrit ton texte
si c'est sur un critere tu peux faire comme cela
if ubound(split(ligne,"texte recherche")>0 then ecrit ton texte 'veut dire que le texte est dans la ligne
0
Rejoignez-nous