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

Résolu
cs_Richard92 Messages postés 22 Date d'inscription mardi 5 juillet 2005 Statut Membre Dernière intervention 27 janvier 2006 - 25 janv. 2006 à 16:26
cs_Richard92 Messages postés 22 Date d'inscription mardi 5 juillet 2005 Statut Membre Dernière intervention 27 janvier 2006 - 27 janv. 2006 à 18:04
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

econs Messages postés 4030 Date d'inscription mardi 13 mai 2003 Statut Membre Dernière intervention 23 décembre 2008 24
25 janv. 2006 à 16:52
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
econs Messages postés 4030 Date d'inscription mardi 13 mai 2003 Statut Membre Dernière intervention 23 décembre 2008 24
25 janv. 2006 à 17:45
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
jpleroisse Messages postés 1788 Date d'inscription mardi 7 novembre 2000 Statut Membre Dernière intervention 11 mars 2006 27
25 janv. 2006 à 21:28
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
cs_Richard92 Messages postés 22 Date d'inscription mardi 5 juillet 2005 Statut Membre Dernière intervention 27 janvier 2006
25 janv. 2006 à 17:15
merci et pour lire je fais coment ?
0

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

Posez votre question
cs_Richard92 Messages postés 22 Date d'inscription mardi 5 juillet 2005 Statut Membre Dernière intervention 27 janvier 2006
25 janv. 2006 à 18:27
atta bizarre là il manque pas un bout ?
0
econs Messages postés 4030 Date d'inscription mardi 13 mai 2003 Statut Membre Dernière intervention 23 décembre 2008 24
25 janv. 2006 à 19:37
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.
0
cs_Richard92 Messages postés 22 Date d'inscription mardi 5 juillet 2005 Statut Membre Dernière intervention 27 janvier 2006
27 janv. 2006 à 18:04
merci econs et jpleroisse.
j'accepte la réponse de econs puisque cest son code mais un gros merci à toi aussi jpleroisse
0
Rejoignez-nous