.txt : Ouvrir / lire /modifier / ecrire / ...

[Résolu]
Signaler
Messages postés
22
Date d'inscription
mardi 5 juillet 2005
Statut
Membre
Dernière intervention
27 janvier 2006
-
Messages postés
22
Date d'inscription
mardi 5 juillet 2005
Statut
Membre
Dernière intervention
27 janvier 2006
-
Salut,
je vais passer pour un gros débutant mais bon.
Voilà,
je voudrais savoir comment on ouvre un fichier pour lire puis pour écrire à une ligne que je connais (9e ligne par exemple).
Merci d'avance

7 réponses

Messages postés
4030
Date d'inscription
mardi 13 mai 2003
Statut
Modérateur
Dernière intervention
23 décembre 2008
22
Pour écrire à la neuvième ligne d'un fichier, tu as deux possibilités :





Tu parcours toutes les lignes de ton fichier, tu les enregistres dans
un tableau. Puis tu réécris dans le fichier les 8 premières lignes de
ton tableau, tu écris ensuite ta nouvelle ligne, puis toutes les lignes
restantes de ton tableau (à partir de la dixième).



Tu ouvres ton fichier de départ en lecture. Tu ouvres un deuxième
fichier en écriture. Tu lis 8 lignes du premier, que tu recopies dans
le second. Tu écris ta nouvelle ligne dans le second. Et tu continues
l'opération précédente (lecture dans le premier, réécriture dans le
second).



Voici un exemple de la 2ème solution :





Dim numFichier1 As Long

Dim numFichier2 As Long

Dim sTemp As String

Dim nbLines As Long



numFichier1 = FreeFile

Open "C:\toto.txt" For Input As #numFichier1



' On crée un fichier temporaire pour réécrire les données.

numFichier2 = FreeFile

Open "C:\temp.txt" For Output As #numFichier2

nbLines = 0

While Not EOF(numFichier1)

Line Input #numFichier1, sTemp

nbLines = nbLines + 1

If nbLines = 9 Then


Print #numFichier2, "MA NOUVELLE LIGNE ICI"

Else


Print #numFichier2, sTemp

End If

Wend

Close #numFichier2



Close #numFichier1



' On kille l'ancien

Kill "C:\toto.txt"

' 0n renomme le temporaire avec le nom de l'ancien.

Name "C:\temp.txt" As "C:\toto.txt"


Manu
-------------------------------------------
Une question bien posée, c'est une chance de réponse bien adaptée.
3
Merci

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

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

Messages postés
4030
Date d'inscription
mardi 13 mai 2003
Statut
Modérateur
Dernière intervention
23 décembre 2008
22
Pour la lecture :






Dim numFichier1 As Long<strike>

</strike>Dim sTemp As String


numFichier1 = FreeFile
Open "C:\toto.txt" For Input As #numFichier1
<strike></strike>
While Not EOF(numFichier1)
Line Input #numFichier1, sTemp

' sTemp contient alors la ligne lue.

' A toi d'en faire ce que tu veux.
<strike></strike> Wend

Close #numFichier1
<strike>

</strike>
Manu
-------------------------------------------
Une question bien posée, c'est une chance de réponse bien adaptée.
3
Merci

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

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

Messages postés
1788
Date d'inscription
mardi 7 novembre 2000
Statut
Membre
Dernière intervention
11 mars 2006
26
Bonsoir,

Tu places un TextBox(propriété Multiligne à True) et après Wend dans le code de econs, tu mets Text1.Text = sTemp



Si tu veux lire le fichier complet, tu peux faire ceci.



Private Sub Command1_Click()

Dim fs, f

Dim texte

Set fs = CreateObject("Scripting.FileSystemObject")

Set f = fs.OpenTextFile("C:\toto.txt", 1, False, 0)

texte = f.Readall

f.Close

Text1.Text = texte

End Sub



jpleroisse
3
Merci

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

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

Messages postés
22
Date d'inscription
mardi 5 juillet 2005
Statut
Membre
Dernière intervention
27 janvier 2006

merci et pour lire je fais coment ?
Messages postés
22
Date d'inscription
mardi 5 juillet 2005
Statut
Membre
Dernière intervention
27 janvier 2006

atta bizarre là il manque pas un bout ?
Messages postés
4030
Date d'inscription
mardi 13 mai 2003
Statut
Modérateur
Dernière intervention
23 décembre 2008
22
Non, tout est là. Cette séquence de ligne parcours toutes les lignes du fichier "C:\toto.txt"


Manu
-------------------------------------------
Une question bien posée, c'est une chance de réponse bien adaptée.
Messages postés
22
Date d'inscription
mardi 5 juillet 2005
Statut
Membre
Dernière intervention
27 janvier 2006

merci econs et jpleroisse.
j'accepte la réponse de econs puisque cest son code mais un gros merci à toi aussi jpleroisse