Comment ecrire à la première ligne d'un fichier

Résolu
sean9992k Messages postés 2 Date d'inscription lundi 27 juin 2005 Statut Membre Dernière intervention 15 mai 2007 - 15 mai 2007 à 01:16
sean9992k Messages postés 2 Date d'inscription lundi 27 juin 2005 Statut Membre Dernière intervention 15 mai 2007 - 15 mai 2007 à 01:38
Bonjour,

J'ai des fichiers à modifier dans un répertoire (environ 350 fichiers).
Je dois ajouter à chacun d'eux une ligne en début de fichier

Je n'arrive pas à ecrire cette ligne à la première ligne des fichier :
Avec les commandes fso, mon fichiers est trop gros donc erreur (> 66 Mo)

Set objFso = CreateObject("Scripting.FileSystemObject")
Set objtextfile = objFso.OpenTextFile("C:\toto.txt", ForReading)
 
Do Until objtextfile.AtEndOfStream
    Text = objtextfile.ReadAll()
Loop


Set objtextfile = objFso.OpenTextFile("C:\toto.txt", ForWriting, False)
    objtextfile.WriteLine ("C'est un test ") & vbCrLf & Text

Avec la commande "append" je n'arrive pas à me positionner en début de fichier

   DirReturn = Dir("C:\test",0)
        Do While DirReturn <> ""
            ' Make sure we don't get a dir
            If Not ((GetAttr("C:\test" & DirReturn) And ATTR_DIRECTORY) = ATTR_DIRECTORY) Then
                Open "C:\test" & DirReturn For Append As #20
               'cette ligne doit être placée au début du fichier
                Print #20, "Date de traitement"
            End If
        DirReturn = Dir
        Close #20
        Loop

Quelqu'un aurrait-il un idée...
merci d'avance

2 réponses

mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
15 mai 2007 à 01:25
Salut,

tu ne peux insérer en première ligne, seulement au fur et à mesure, me semble-t-il.
Br'ef, faut lire le fichier et le réécrire :

Sub test()
    Dim ff As Integer, sFichier As String, sTexte As String
    
ff = FreeFile
sFichier = "C:\Chemin\Nouveau.txt"

Open sFichier For Input As #ff
    sTexte = Input$(LOF(ff), #ff)
Close #ff

Open sFichier For Output As #ff
    Print #ff, "Ta nouvelle Ligne, en ligne
1"
    Print #ff, sTexte
Close #ff

End Sub

~
<small>[code.aspx?ID=39466 Mortalino] ~
Colorisation automatique</small>

@++

<hr size="2" width="100%" />
  --Mortalino--
Le mystérieux chevalier, ~Provençal, le Gaulois~
  
3
sean9992k Messages postés 2 Date d'inscription lundi 27 juin 2005 Statut Membre Dernière intervention 15 mai 2007
15 mai 2007 à 01:38
Merci beaucoup pour ton aide Mortalino (quelle rapidité).
Cela fonctionne trés bien (même pour les gros fichiers)
@+
0
Rejoignez-nous