Bonjour,
en VBA j'ouvre un fichier avec l'intruction
OPEN "fichier.txt" FOR OUTPUT AS #1
je lis le fichier sequentellement mais je voudrais pouvoir me positionner
- soit au debut pour recommencer une lecture
- soit a la fin pour pouvoir ajouter un enregistrement
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Clément Marcotte
Bonjour,
en VBA j'ouvre un fichier avec l'intruction OPEN "fichier.txt" FOR OUTPUT AS #1
Je serais très surpris que tu sois capable de lire un fichier avec Output, parce qu'output c'est pour écrire. Ceci dit, ce serait peut-être avec FileSystemObject et avec la méthode OpenAsTextStream.
Peut-être qu'en ce dont tu as besoin...
"damnou" a écrit dans le message de news:%23$$
Bonjour, je lis le fichier sequentellement mais je voudrais pouvoir me positionner
- soit au debut pour recommencer une lecture - soit a la fin pour pouvoir ajouter un enregistrement
si quelqu'un a une solution , merci d'avance
DAMNOU
Bonjour,
en VBA j'ouvre un fichier avec l'intruction
OPEN "fichier.txt" FOR OUTPUT AS #1
Je serais très surpris que tu sois capable de lire un fichier avec
Output, parce qu'output c'est pour écrire. Ceci dit, ce serait
peut-être avec FileSystemObject et avec la méthode OpenAsTextStream.
Peut-être qu'en ce dont tu as besoin...
"damnou" <damnou2@aol.com> a écrit dans le message de
news:%23$$cl1bwEHA.4040@TK2MSFTNGP11.phx.gbl...
Bonjour,
je lis le fichier sequentellement mais je voudrais pouvoir me
positionner
- soit au debut pour recommencer une lecture
- soit a la fin pour pouvoir ajouter un enregistrement
en VBA j'ouvre un fichier avec l'intruction OPEN "fichier.txt" FOR OUTPUT AS #1
Je serais très surpris que tu sois capable de lire un fichier avec Output, parce qu'output c'est pour écrire. Ceci dit, ce serait peut-être avec FileSystemObject et avec la méthode OpenAsTextStream.
Peut-être qu'en ce dont tu as besoin...
"damnou" a écrit dans le message de news:%23$$
Bonjour, je lis le fichier sequentellement mais je voudrais pouvoir me positionner
- soit au debut pour recommencer une lecture - soit a la fin pour pouvoir ajouter un enregistrement
si quelqu'un a une solution , merci d'avance
DAMNOU
PMO
Bonjour,
Voici un code à faire tourner et qui vous servira d'exemple. Faites le tourner pas à pas pour mieux vous rendre compte.
'******************* Option Explicit '---- Chemin et nom du fichier ---- '---- Changez la valeur de la ---- '---- constance à votre convenance ---- Const nomFichier As String = "c:wxyz.txt" '____________________________________ Sub LireTout() Dim Libre As Byte Dim A$ Dim T() Dim i& On Error GoTo Erreur Libre = FreeFile '#### Lecture #### '---- Si fichier introuvable Erreur 53 ---- Open nomFichier For Input As #Libre Do While Not EOF(Libre) '°°°° Lit toute la ligne entière °°°° Line Input #Libre, A$ i& = i& + 1 '°°°° Tableau des données pour les reécrire °°°° ReDim Preserve T(1 To i&) T(i&) = A$ Loop Close #Libre '#### Ecriture #### Ecrire: '°°°° Demande de données °°°° A$ = "pseudo valeur" Do Until A$ = "" A$ = InputBox(prompt:="Tapez une donnée", _ Title:="Données à écrire dans " & nomFichier & "") If A$ = "" Then Exit Do '°°°° Tableau des données °°°° ReDim Preserve T(1 To i& + 1) T(UBound(T)) = A$ i& = i& + 1 Loop '°°°° Ecrit les anciennes et nouvelles données °°°° Open nomFichier For Output As #Libre For i& = 1 To UBound(T) Print #Libre, T(i&) Next i& Close #Libre Exit Sub Erreur: If Err = 53 Then GoTo Ecrire End Sub '*********************
Est-ce que ça répond à votre question ?
Cordialement.
PMO Patrick Morange
Bonjour, en VBA j'ouvre un fichier avec l'intruction OPEN "fichier.txt" FOR OUTPUT AS #1 je lis le fichier sequentellement mais je voudrais pouvoir me positionner - soit au debut pour recommencer une lecture - soit a la fin pour pouvoir ajouter un enregistrement
si quelqu'un a une solution , merci d'avance
DAMNOU
Bonjour,
Voici un code à faire tourner et qui vous servira d'exemple.
Faites le tourner pas à pas pour mieux vous rendre compte.
'*******************
Option Explicit
'---- Chemin et nom du fichier ----
'---- Changez la valeur de la ----
'---- constance à votre convenance ----
Const nomFichier As String = "c:wxyz.txt"
'____________________________________
Sub LireTout()
Dim Libre As Byte
Dim A$
Dim T()
Dim i&
On Error GoTo Erreur
Libre = FreeFile
'#### Lecture ####
'---- Si fichier introuvable Erreur 53 ----
Open nomFichier For Input As #Libre
Do While Not EOF(Libre)
'°°°° Lit toute la ligne entière °°°°
Line Input #Libre, A$
i& = i& + 1
'°°°° Tableau des données pour les reécrire °°°°
ReDim Preserve T(1 To i&)
T(i&) = A$
Loop
Close #Libre
'#### Ecriture ####
Ecrire:
'°°°° Demande de données °°°°
A$ = "pseudo valeur"
Do Until A$ = ""
A$ = InputBox(prompt:="Tapez une donnée", _
Title:="Données à écrire dans " & nomFichier & "")
If A$ = "" Then Exit Do
'°°°° Tableau des données °°°°
ReDim Preserve T(1 To i& + 1)
T(UBound(T)) = A$
i& = i& + 1
Loop
'°°°° Ecrit les anciennes et nouvelles données °°°°
Open nomFichier For Output As #Libre
For i& = 1 To UBound(T)
Print #Libre, T(i&)
Next i&
Close #Libre
Exit Sub
Erreur:
If Err = 53 Then GoTo Ecrire
End Sub
'*********************
Est-ce que ça répond à votre question ?
Cordialement.
PMO
Patrick Morange
Bonjour,
en VBA j'ouvre un fichier avec l'intruction
OPEN "fichier.txt" FOR OUTPUT AS #1
je lis le fichier sequentellement mais je voudrais pouvoir me positionner
- soit au debut pour recommencer une lecture
- soit a la fin pour pouvoir ajouter un enregistrement
Voici un code à faire tourner et qui vous servira d'exemple. Faites le tourner pas à pas pour mieux vous rendre compte.
'******************* Option Explicit '---- Chemin et nom du fichier ---- '---- Changez la valeur de la ---- '---- constance à votre convenance ---- Const nomFichier As String = "c:wxyz.txt" '____________________________________ Sub LireTout() Dim Libre As Byte Dim A$ Dim T() Dim i& On Error GoTo Erreur Libre = FreeFile '#### Lecture #### '---- Si fichier introuvable Erreur 53 ---- Open nomFichier For Input As #Libre Do While Not EOF(Libre) '°°°° Lit toute la ligne entière °°°° Line Input #Libre, A$ i& = i& + 1 '°°°° Tableau des données pour les reécrire °°°° ReDim Preserve T(1 To i&) T(i&) = A$ Loop Close #Libre '#### Ecriture #### Ecrire: '°°°° Demande de données °°°° A$ = "pseudo valeur" Do Until A$ = "" A$ = InputBox(prompt:="Tapez une donnée", _ Title:="Données à écrire dans " & nomFichier & "") If A$ = "" Then Exit Do '°°°° Tableau des données °°°° ReDim Preserve T(1 To i& + 1) T(UBound(T)) = A$ i& = i& + 1 Loop '°°°° Ecrit les anciennes et nouvelles données °°°° Open nomFichier For Output As #Libre For i& = 1 To UBound(T) Print #Libre, T(i&) Next i& Close #Libre Exit Sub Erreur: If Err = 53 Then GoTo Ecrire End Sub '*********************
Est-ce que ça répond à votre question ?
Cordialement.
PMO Patrick Morange
Bonjour, en VBA j'ouvre un fichier avec l'intruction OPEN "fichier.txt" FOR OUTPUT AS #1 je lis le fichier sequentellement mais je voudrais pouvoir me positionner - soit au debut pour recommencer une lecture - soit a la fin pour pouvoir ajouter un enregistrement
si quelqu'un a une solution , merci d'avance
DAMNOU
Clément Marcotte
Bonjour, Sub LireOuAjouter() Const ForReading = 1, ForWriting = 2, ForAppending = 8 Dim fso As Object, fichier As Object, laligne Dim lefichier As Object, i As Integer Dim byebye As Boolean, lareponse As String, jsuistanne As Integer Set fso = CreateObject("scripting.filesystemobject") Set fichier = fso.GetFile("c:mes documentslebeaufichiertexte.txt") Do lareponse = InputBox("Désirez vous (L)ire ou (A)jouter le(au) fichier ?" & vbNewLine & "Cliquez sur Annuler pour terminer", _ "Choix de l'action à effectuer") Select Case UCase(lareponse) Case "A" Set lefichier = fichier.openastextstream(ForAppending) lefichier.WriteLine "Ligne ajoutée ici" lefichier.Close Set lefichier = Nothing Case "L" Set lefichier = fichier.openastextstream(ForReading) i = 1 Do While Not lefichier.AtEndOfStream laligne = lefichier.ReadLine ligneseparee = Split(laligne, ";") For j = 0 To UBound(ligneseparee) Cells(i, j + 1).Value = ligneseparee(j) Next i = i + 1 Loop Case "" 'cliquer sur "Annuler pour terminer le programme Exit Sub Case Else Select Case jsuistanne Case vbOK byebye = False Case vbCancel End Case Else End Select End Select Loop Until byebye End Sub
"damnou" a écrit dans le message de news:%23$$
Bonjour, en VBA j'ouvre un fichier avec l'intruction OPEN "fichier.txt" FOR OUTPUT AS #1 je lis le fichier sequentellement mais je voudrais pouvoir me positionner
- soit au debut pour recommencer une lecture - soit a la fin pour pouvoir ajouter un enregistrement
si quelqu'un a une solution , merci d'avance
DAMNOU
Bonjour,
Sub LireOuAjouter()
Const ForReading = 1, ForWriting = 2, ForAppending = 8
Dim fso As Object, fichier As Object, laligne
Dim lefichier As Object, i As Integer
Dim byebye As Boolean, lareponse As String, jsuistanne As Integer
Set fso = CreateObject("scripting.filesystemobject")
Set fichier = fso.GetFile("c:mes documentslebeaufichiertexte.txt")
Do
lareponse = InputBox("Désirez vous (L)ire ou (A)jouter le(au) fichier
?" & vbNewLine & "Cliquez sur Annuler pour terminer", _ "Choix de
l'action à effectuer")
Select Case UCase(lareponse)
Case "A"
Set lefichier = fichier.openastextstream(ForAppending)
lefichier.WriteLine "Ligne ajoutée ici"
lefichier.Close
Set lefichier = Nothing
Case "L"
Set lefichier = fichier.openastextstream(ForReading)
i = 1
Do While Not lefichier.AtEndOfStream
laligne = lefichier.ReadLine
ligneseparee = Split(laligne, ";")
For j = 0 To UBound(ligneseparee)
Cells(i, j + 1).Value = ligneseparee(j)
Next
i = i + 1
Loop
Case ""
'cliquer sur "Annuler pour terminer le programme
Exit Sub
Case Else
Select Case jsuistanne
Case vbOK
byebye = False
Case vbCancel
End
Case Else
End Select
End Select
Loop Until byebye
End Sub
"damnou" <damnou2@aol.com> a écrit dans le message de
news:%23$$cl1bwEHA.4040@TK2MSFTNGP11.phx.gbl...
Bonjour,
en VBA j'ouvre un fichier avec l'intruction
OPEN "fichier.txt" FOR OUTPUT AS #1
je lis le fichier sequentellement mais je voudrais pouvoir me
positionner
- soit au debut pour recommencer une lecture
- soit a la fin pour pouvoir ajouter un enregistrement
Bonjour, Sub LireOuAjouter() Const ForReading = 1, ForWriting = 2, ForAppending = 8 Dim fso As Object, fichier As Object, laligne Dim lefichier As Object, i As Integer Dim byebye As Boolean, lareponse As String, jsuistanne As Integer Set fso = CreateObject("scripting.filesystemobject") Set fichier = fso.GetFile("c:mes documentslebeaufichiertexte.txt") Do lareponse = InputBox("Désirez vous (L)ire ou (A)jouter le(au) fichier ?" & vbNewLine & "Cliquez sur Annuler pour terminer", _ "Choix de l'action à effectuer") Select Case UCase(lareponse) Case "A" Set lefichier = fichier.openastextstream(ForAppending) lefichier.WriteLine "Ligne ajoutée ici" lefichier.Close Set lefichier = Nothing Case "L" Set lefichier = fichier.openastextstream(ForReading) i = 1 Do While Not lefichier.AtEndOfStream laligne = lefichier.ReadLine ligneseparee = Split(laligne, ";") For j = 0 To UBound(ligneseparee) Cells(i, j + 1).Value = ligneseparee(j) Next i = i + 1 Loop Case "" 'cliquer sur "Annuler pour terminer le programme Exit Sub Case Else Select Case jsuistanne Case vbOK byebye = False Case vbCancel End Case Else End Select End Select Loop Until byebye End Sub
"damnou" a écrit dans le message de news:%23$$
Bonjour, en VBA j'ouvre un fichier avec l'intruction OPEN "fichier.txt" FOR OUTPUT AS #1 je lis le fichier sequentellement mais je voudrais pouvoir me positionner
- soit au debut pour recommencer une lecture - soit a la fin pour pouvoir ajouter un enregistrement
si quelqu'un a une solution , merci d'avance
DAMNOU
micosof.com
Bonjour, en VBA j'ouvre un fichier avec l'intruction OPEN "fichier.txt" FOR OUTPUT AS #1 je lis le fichier sequentellement mais je voudrais pouvoir me positionner - soit au debut pour recommencer une lecture - soit a la fin pour pouvoir ajouter un enregistrement
si quelqu'un a une solution , merci d'avance
DAMNOU
Merci a Clement Marcotte et PMO pour vos reponses
en effet, pour se positionner au debut il faut fermer et reouvrir le fichier avec "FOR INPUT" et pour se positionner en fin il faut le fermer et reouvrir avec "FOR APPEND"
A+ Damnou
Bonjour,
en VBA j'ouvre un fichier avec l'intruction
OPEN "fichier.txt" FOR OUTPUT AS #1
je lis le fichier sequentellement mais je voudrais pouvoir me positionner
- soit au debut pour recommencer une lecture
- soit a la fin pour pouvoir ajouter un enregistrement
si quelqu'un a une solution , merci d'avance
DAMNOU
Merci a Clement Marcotte et PMO pour vos reponses
en effet, pour se positionner au debut il faut fermer et reouvrir le
fichier avec "FOR INPUT" et pour se positionner en fin il faut le fermer
et reouvrir avec "FOR APPEND"
Bonjour, en VBA j'ouvre un fichier avec l'intruction OPEN "fichier.txt" FOR OUTPUT AS #1 je lis le fichier sequentellement mais je voudrais pouvoir me positionner - soit au debut pour recommencer une lecture - soit a la fin pour pouvoir ajouter un enregistrement
si quelqu'un a une solution , merci d'avance
DAMNOU
Merci a Clement Marcotte et PMO pour vos reponses
en effet, pour se positionner au debut il faut fermer et reouvrir le fichier avec "FOR INPUT" et pour se positionner en fin il faut le fermer et reouvrir avec "FOR APPEND"