Substitution de lignes

Signaler
Messages postés
25
Date d'inscription
mardi 15 décembre 2009
Statut
Membre
Dernière intervention
13 juin 2013
-
Messages postés
25
Date d'inscription
mardi 15 décembre 2009
Statut
Membre
Dernière intervention
13 juin 2013
-
Bonjour à tous, j'ai un gros fichier de 96000 lignes, que je doit dupliqué en modifiant le contenu d'un groupe de lignes et une lignes sur deux. Le mieux c'est l'exemple :

On part de ça :
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH
HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH
HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH
HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH
HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
et je dois arriver à ça :
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH
LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL
HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH
LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL
HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH
LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Ces blocs sont repetitifs, j'ai essayé avec une macro enregistrer sous excel mais bon y'a beaucoup de lignes dans ce fichier et je voudrai automatiser un max.

Des idées la dessus ?

Merci d'avance.

Vincent.

2 réponses

Messages postés
1854
Date d'inscription
jeudi 23 mai 2002
Statut
Membre
Dernière intervention
24 juin 2018
26
 Bonjour,


Exemple de script, à translater en vb6.



Option Explicit
Const FileInfileTxt  = "D:\Test_VBFrance.txt"
Const FileOutfileTxt = "D:\Test_VBFrance_Result.txt"

Const strAddLine = "LLLLLLLLLLLLLL"
Dim strHeader : strHeader = Chr(88) 'X

Dim objFso, objTextFile, objDico
Dim strLine
Dim i, intCount
intCount=0

Set objFso = CreateObject("Scripting.FileSystemObject")
Set objTextFile = objFso.OpenTextFile(FileInfileTxt, 1)
Set objDico = CreateObject("Scripting.Dictionary")
   
Do While Not objTextFile.AtEndOfStream
   strLine = objTextFile.ReadLine
   intCount = intCount+1
   'La key du dictionnaire est le compteur de lignes
   'Left, Instr . 
   If Left(strLine, 1) = strHeader Then
      'Ajout ligne d en-tete
      objDico.Add intCount , strLine 
   Else 
      'Ajout ligne courante et ligne "LLLLLLL"
      objDico.Add intCount, strLine & vbCrLf  & strAddLine
   End if
Loop
objTextFile.Close 

'ecriture du fichier 
Set objTextFile = objFso.CreateTextFile(FileOutfileTxt) 
For i=1 To objDico.Count
    objTextFile.WriteLine objDico(i)
Next
objTextFile.Close

Set objDico = Nothing
Set objTextFile = Nothing
Set objFso = Nothing




jean-marc
Messages postés
25
Date d'inscription
mardi 15 décembre 2009
Statut
Membre
Dernière intervention
13 juin 2013
1
Merci Jean-Marc, ça marche impec !
Je ne connaissais pas l'instruction CreateObjet qui à l'air bien pratique.

Encore Merci.

Vincent.