Substitution de lignes

Utilisateur anonyme - 14 avril 2011 à 15:15
 Utilisateur anonyme - 15 avril 2011 à 08:37
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

cs_JMO Messages postés 1854 Date d'inscription jeudi 23 mai 2002 Statut Membre Dernière intervention 24 juin 2018 27
14 avril 2011 à 17:35
 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
0
Utilisateur anonyme
15 avril 2011 à 08:37
Merci Jean-Marc, ça marche impec !
Je ne connaissais pas l'instruction CreateObjet qui à l'air bien pratique.

Encore Merci.

Vincent.
0
Rejoignez-nous