En fait je cherche une solution pour éditer le fichier .DAT afin de supprimer les plus ancien enregistrements sans recommencer un fichier historique à zéro
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre questionPublic Sub TestTextStream() Dim lobjFSO As Scripting.FileSystemObject Dim lobjTxtStream As Scripting.TextStream Dim i As Integer ' crée objet File System Object (pour l'exemple) Set lobjFSO = New Scripting.FileSystemObject ' crée un fichier text et ouvre un text stream associé Set lobjTxtStream = lobjFSO.CreateTextFile("C:\temp\test.txt", True) ' on se place en fin de fichier (inutile ici, mais utile pour un fichier existant) lobjTxtStream.AtEndOfStream ' écrit 10 lignes (à la fin du fichier, donc) For i = 1 To 10 lobjTxtStream.WriteLine ("ligne " & CStr(i)) Next i ' ferme le text stream (important !) Call lobjTxtStream.Close Set lobjTxtStream = Nothing Set lobjFSO = Nothing End Sub
il n'existe pas de composant VBA/VB6 performant pour la manipulation de fichiers.
Public Sub TestTextStream() Dim lobjFSO As Scripting.FileSystemObject Dim lobjTxtStream As Scripting.TextStream Dim i As Integer ' crée objet File System Object (pour l'exemple) Set lobjFSO = New Scripting.FileSystemObject ' crée un fichier text et ouvre un text stream associé Set lobjTxtStream = lobjFSO.CreateTextFile("C:\temp\test.txt", True) ' on se place en fin de fichier (inutile ici, mais utile pour un fichier existant) lobjTxtStream.AtEndOfStream ' écrit 10 lignes (à la fin du fichier, donc) For i = 1 To 10 lobjTxtStream.WriteLine ("ligne " & CStr(i)) Next i ' ferme le text stream (important !) Call lobjTxtStream.Close Set lobjTxtStream = Nothing Set lobjFSO = Nothing End Sub
' on se place en fin de fichier (inutile ici, mais utile pour un fichier existant)
lobjTxtStream.AtEndOfStream ' === >>> mama mia ! ArEnd machin chouette n'est pas une méthode !
' c'est une propriété dont on ne peut constater que si False ou si True (en fin de fichier). Elle est en lecture seule !
Open "D:\BSNTOU.txt" For Append As #1 For i = 1 To 10 Print #1, "ligne blabla " & CStr(i) Next i Close #1