Bonjour à tous,
j'ai un petit pb avec les retours chariot sur un fichier txt de
longueur 530.
le Script ci dessous doit lire le fichier ligne par ligne et remplacer
4 fois dans une certaine zone selon le début de la ligne une valeur par
une autre (11315 longueur fixe 5).
Sauf que: à la sortie outfile n'a plus de retour chariot à la fin
position 530.
Je suis perdu, une petite lumière serait la bienvenue !!!
Option Explicit
Dim fso, fileIn, fileOut, strIn, CE, Sline
Set fso = CreateObject("Scripting.FileSystemObject")
Set fileIn = fso.OpenTextFile("C:\INFILE", 1, True)
Set fileOut = fso.OpenTextFile("C:\OUTFILE", 2, True)
Do While Not fileIn.AtEndOfStream
SLine = fileIn.ReadLine
CE=Mid(SLine,1,2) 'CE = Code début de ligne 21 04 ou 21
If CE= "04" Then
strIn=Mid(SLine,1,192) ' Pour extraire le début de la ligne'
strIn=strIn & "11315" 'pour remplacer 19725 par 11315 Pos 193 lg 5
strIn=strIn & Mid(SLine,198,66) 'Pour extraire la 2 ieme partie de la
ligne
strIn=strIn & "11315" 'pour remplacer 19725 par 11315 Pos 264 Lg 5
strIn=strIn & Mid(SLine,269,168) 'Pour extraire la 3 ieme partie de
la ligne
strIn=strIn & "11315" 'pour remplacer 19725 par 11315 Pos 437 Lg 5
strIn=strIn & Mid(SLine,442,50) 'Pour extraire la 4 ieme partie de la
ligne
strIn=strIn & "11315" 'pour remplacer 19725 par 11315 Pos 492 Lg 5
strIn=strIn & Mid(SLine,497,33) 'Pour extraire la 5 ieme partie de la
ligne
fileOut.WriteLine strIn
ElseIf CE="21" Then
strIn=Mid(SLine,1,18)
strIn=strIn & "11315" 'pour remplacer 19725 par 11315 Pos 19 Lg5
strIn=strIn & Mid(SLine,24,506) 'Pour extraire le reste de la ligne
fileOut.WriteLine strIn
Else CE="29"
fileOut.WriteLine SLine
fileOut.Close
End If
Loop
set fso=Nothing
Set fileIn=Nothing
Set fileOut=Nothing
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
---DGI972---
---DGI972--- a formulé ce mardi :
Bonjour à tous, j'ai un petit pb avec les retours chariot sur un fichier txt de longueur 530. le Script ci dessous doit lire le fichier ligne par ligne et remplacer 4 fois dans une certaine zone selon le début de la ligne une valeur par une autre (11315 longueur fixe 5). Sauf que: à la sortie outfile n'a plus de retour chariot à la fin position 530. Je suis perdu, une petite lumière serait la bienvenue !!!
Option Explicit Dim fso, fileIn, fileOut, strIn, CE, Sline Set fso = CreateObject("Scripting.FileSystemObject") Set fileIn = fso.OpenTextFile("C:INFILE", 1, True) Set fileOut = fso.OpenTextFile("C:OUTFILE", 2, True) Do While Not fileIn.AtEndOfStream SLine = fileIn.ReadLine CE=Mid(SLine,1,2) 'CE = Code début de ligne 21 04 ou 21
If CE= "04" Then strIn=Mid(SLine,1,192) ' Pour extraire le début de la ligne' strIn=strIn & "11315" 'pour remplacer 19725 par 11315 Pos 193 lg 5 strIn=strIn & Mid(SLine,198,66) 'Pour extraire la 2 ieme partie de la ligne strIn=strIn & "11315" 'pour remplacer 19725 par 11315 Pos 264 Lg 5 strIn=strIn & Mid(SLine,269,168) 'Pour extraire la 3 ieme partie de la ligne strIn=strIn & "11315" 'pour remplacer 19725 par 11315 Pos 437 Lg 5 strIn=strIn & Mid(SLine,442,50) 'Pour extraire la 4 ieme partie de la ligne strIn=strIn & "11315" 'pour remplacer 19725 par 11315 Pos 492 Lg 5 strIn=strIn & Mid(SLine,497,33) 'Pour extraire la 5 ieme partie de la ligne fileOut.WriteLine strIn ElseIf CE="21" Then strIn=Mid(SLine,1,18) strIn=strIn & "11315" 'pour remplacer 19725 par 11315 Pos 19 Lg5 strIn=strIn & Mid(SLine,24,506) 'Pour extraire le reste de la ligne fileOut.WriteLine strIn Else CE="29" fileOut.WriteLine SLine fileOut.Close End If Loop
set fso=Nothing Set fileIn=Nothing Set fileOut=Nothing Même en simplifiant le script le fichier OUTFILE, du moins la première
ligne dans cet exemple n'a pas de retour chariot en position 530. NB: Le fichier INFILE est un fichier txt de longueur 530 avec un retour chariot en position 530.
Option Explicit Dim fso, fileIn, fileOut, strIn, CE, Sline Set fso = CreateObject("Scripting.FileSystemObject") Set fileIn = fso.OpenTextFile("C:INFILE", 1, True) Set fileOut = fso.OpenTextFile("C:OUTFILE", 2, True) Do While Not fileIn.AtEndOfStream SLine = fileIn.ReadLine CE=Mid(SLine,1,2) 'CE = Code enregistrement 21 04 ou 21 fileOut.WriteLine SLine fileOut.Close Loop
set fso=Nothing Set fileIn=Nothing Set fileOut=Nothing
---DGI972--- a formulé ce mardi :
Bonjour à tous,
j'ai un petit pb avec les retours chariot sur un fichier txt de longueur 530.
le Script ci dessous doit lire le fichier ligne par ligne et remplacer 4 fois
dans une certaine zone selon le début de la ligne une valeur par une autre
(11315 longueur fixe 5).
Sauf que: à la sortie outfile n'a plus de retour chariot à la fin position
530.
Je suis perdu, une petite lumière serait la bienvenue !!!
Option Explicit
Dim fso, fileIn, fileOut, strIn, CE, Sline
Set fso = CreateObject("Scripting.FileSystemObject")
Set fileIn = fso.OpenTextFile("C:INFILE", 1, True)
Set fileOut = fso.OpenTextFile("C:OUTFILE", 2, True)
Do While Not fileIn.AtEndOfStream
SLine = fileIn.ReadLine
CE=Mid(SLine,1,2) 'CE = Code début de ligne 21 04 ou 21
If CE= "04" Then
strIn=Mid(SLine,1,192) ' Pour extraire le début de la ligne'
strIn=strIn & "11315" 'pour remplacer 19725 par 11315 Pos 193 lg 5
strIn=strIn & Mid(SLine,198,66) 'Pour extraire la 2 ieme partie de la ligne
strIn=strIn & "11315" 'pour remplacer 19725 par 11315 Pos 264 Lg 5
strIn=strIn & Mid(SLine,269,168) 'Pour extraire la 3 ieme partie de la
ligne
strIn=strIn & "11315" 'pour remplacer 19725 par 11315 Pos 437 Lg 5
strIn=strIn & Mid(SLine,442,50) 'Pour extraire la 4 ieme partie de la ligne
strIn=strIn & "11315" 'pour remplacer 19725 par 11315 Pos 492 Lg 5
strIn=strIn & Mid(SLine,497,33) 'Pour extraire la 5 ieme partie de la ligne
fileOut.WriteLine strIn
ElseIf CE="21" Then
strIn=Mid(SLine,1,18)
strIn=strIn & "11315" 'pour remplacer 19725 par 11315 Pos 19 Lg5
strIn=strIn & Mid(SLine,24,506) 'Pour extraire le reste de la ligne
fileOut.WriteLine strIn
Else CE="29"
fileOut.WriteLine SLine
fileOut.Close
End If
Loop
set fso=Nothing
Set fileIn=Nothing
Set fileOut=Nothing
Même en simplifiant le script le fichier OUTFILE, du moins la première
ligne dans cet exemple n'a pas de retour chariot en position 530.
NB: Le fichier INFILE est un fichier txt de longueur 530 avec un retour
chariot en position 530.
Option Explicit
Dim fso, fileIn, fileOut, strIn, CE, Sline
Set fso = CreateObject("Scripting.FileSystemObject")
Set fileIn = fso.OpenTextFile("C:INFILE", 1, True)
Set fileOut = fso.OpenTextFile("C:OUTFILE", 2, True)
Do While Not fileIn.AtEndOfStream
SLine = fileIn.ReadLine
CE=Mid(SLine,1,2) 'CE = Code enregistrement 21 04 ou 21
fileOut.WriteLine SLine
fileOut.Close
Loop
set fso=Nothing
Set fileIn=Nothing
Set fileOut=Nothing
Bonjour à tous, j'ai un petit pb avec les retours chariot sur un fichier txt de longueur 530. le Script ci dessous doit lire le fichier ligne par ligne et remplacer 4 fois dans une certaine zone selon le début de la ligne une valeur par une autre (11315 longueur fixe 5). Sauf que: à la sortie outfile n'a plus de retour chariot à la fin position 530. Je suis perdu, une petite lumière serait la bienvenue !!!
Option Explicit Dim fso, fileIn, fileOut, strIn, CE, Sline Set fso = CreateObject("Scripting.FileSystemObject") Set fileIn = fso.OpenTextFile("C:INFILE", 1, True) Set fileOut = fso.OpenTextFile("C:OUTFILE", 2, True) Do While Not fileIn.AtEndOfStream SLine = fileIn.ReadLine CE=Mid(SLine,1,2) 'CE = Code début de ligne 21 04 ou 21
If CE= "04" Then strIn=Mid(SLine,1,192) ' Pour extraire le début de la ligne' strIn=strIn & "11315" 'pour remplacer 19725 par 11315 Pos 193 lg 5 strIn=strIn & Mid(SLine,198,66) 'Pour extraire la 2 ieme partie de la ligne strIn=strIn & "11315" 'pour remplacer 19725 par 11315 Pos 264 Lg 5 strIn=strIn & Mid(SLine,269,168) 'Pour extraire la 3 ieme partie de la ligne strIn=strIn & "11315" 'pour remplacer 19725 par 11315 Pos 437 Lg 5 strIn=strIn & Mid(SLine,442,50) 'Pour extraire la 4 ieme partie de la ligne strIn=strIn & "11315" 'pour remplacer 19725 par 11315 Pos 492 Lg 5 strIn=strIn & Mid(SLine,497,33) 'Pour extraire la 5 ieme partie de la ligne fileOut.WriteLine strIn ElseIf CE="21" Then strIn=Mid(SLine,1,18) strIn=strIn & "11315" 'pour remplacer 19725 par 11315 Pos 19 Lg5 strIn=strIn & Mid(SLine,24,506) 'Pour extraire le reste de la ligne fileOut.WriteLine strIn Else CE="29" fileOut.WriteLine SLine fileOut.Close End If Loop
set fso=Nothing Set fileIn=Nothing Set fileOut=Nothing Même en simplifiant le script le fichier OUTFILE, du moins la première
ligne dans cet exemple n'a pas de retour chariot en position 530. NB: Le fichier INFILE est un fichier txt de longueur 530 avec un retour chariot en position 530.
Option Explicit Dim fso, fileIn, fileOut, strIn, CE, Sline Set fso = CreateObject("Scripting.FileSystemObject") Set fileIn = fso.OpenTextFile("C:INFILE", 1, True) Set fileOut = fso.OpenTextFile("C:OUTFILE", 2, True) Do While Not fileIn.AtEndOfStream SLine = fileIn.ReadLine CE=Mid(SLine,1,2) 'CE = Code enregistrement 21 04 ou 21 fileOut.WriteLine SLine fileOut.Close Loop
set fso=Nothing Set fileIn=Nothing Set fileOut=Nothing
---DGI972---
---DGI972--- a exposé le 11/10/2005 :
---DGI972--- a formulé ce mardi :
Bonjour à tous, j'ai un petit pb avec les retours chariot sur un fichier txt de longueur 530. le Script ci dessous doit lire le fichier ligne par ligne et remplacer 4 fois dans une certaine zone selon le début de la ligne une valeur par une autre (11315 longueur fixe 5). Sauf que: à la sortie outfile n'a plus de retour chariot à la fin position 530. Je suis perdu, une petite lumière serait la bienvenue !!!
Option Explicit Dim fso, fileIn, fileOut, strIn, CE, Sline Set fso = CreateObject("Scripting.FileSystemObject") Set fileIn = fso.OpenTextFile("C:INFILE", 1, True) Set fileOut = fso.OpenTextFile("C:OUTFILE", 2, True) Do While Not fileIn.AtEndOfStream SLine = fileIn.ReadLine CE=Mid(SLine,1,2) 'CE = Code début de ligne 21 04 ou 21
If CE= "04" Then strIn=Mid(SLine,1,192) ' Pour extraire le début de la ligne' strIn=strIn & "11315" 'pour remplacer 19725 par 11315 Pos 193 lg 5 strIn=strIn & Mid(SLine,198,66) 'Pour extraire la 2 ieme partie de la ligne strIn=strIn & "11315" 'pour remplacer 19725 par 11315 Pos 264 Lg 5 strIn=strIn & Mid(SLine,269,168) 'Pour extraire la 3 ieme partie de la ligne strIn=strIn & "11315" 'pour remplacer 19725 par 11315 Pos 437 Lg 5 strIn=strIn & Mid(SLine,442,50) 'Pour extraire la 4 ieme partie de la ligne strIn=strIn & "11315" 'pour remplacer 19725 par 11315 Pos 492 Lg 5 strIn=strIn & Mid(SLine,497,33) 'Pour extraire la 5 ieme partie de la ligne fileOut.WriteLine strIn ElseIf CE="21" Then strIn=Mid(SLine,1,18) strIn=strIn & "11315" 'pour remplacer 19725 par 11315 Pos 19 Lg5 strIn=strIn & Mid(SLine,24,506) 'Pour extraire le reste de la ligne fileOut.WriteLine strIn Else CE="29" fileOut.WriteLine SLine fileOut.Close End If Loop
set fso=Nothing Set fileIn=Nothing Set fileOut=Nothing Même en simplifiant le script le fichier OUTFILE, du moins la première ligne
dans cet exemple n'a pas de retour chariot en position 530. NB: Le fichier INFILE est un fichier txt de longueur 530 avec un retour chariot en position 530.
Option Explicit Dim fso, fileIn, fileOut, strIn, CE, Sline Set fso = CreateObject("Scripting.FileSystemObject") Set fileIn = fso.OpenTextFile("C:INFILE", 1, True) Set fileOut = fso.OpenTextFile("C:OUTFILE", 2, True) Do While Not fileIn.AtEndOfStream SLine = fileIn.ReadLine CE=Mid(SLine,1,2) 'CE = Code enregistrement 21 04 ou 21 fileOut.WriteLine SLine fileOut.Close Loop
set fso=Nothing Set fileIn=Nothing Set fileOut=Nothing
Fausse Alerte, le retour chariot est présent mais toutes les sommes des morceaux de lignes ne sont pas égales à 530. Je travail dessus.
---DGI972--- a exposé le 11/10/2005 :
---DGI972--- a formulé ce mardi :
Bonjour à tous,
j'ai un petit pb avec les retours chariot sur un fichier txt de longueur
530.
le Script ci dessous doit lire le fichier ligne par ligne et remplacer 4
fois dans une certaine zone selon le début de la ligne une valeur par une
autre (11315 longueur fixe 5).
Sauf que: à la sortie outfile n'a plus de retour chariot à la fin position
530.
Je suis perdu, une petite lumière serait la bienvenue !!!
Option Explicit
Dim fso, fileIn, fileOut, strIn, CE, Sline
Set fso = CreateObject("Scripting.FileSystemObject")
Set fileIn = fso.OpenTextFile("C:INFILE", 1, True)
Set fileOut = fso.OpenTextFile("C:OUTFILE", 2, True)
Do While Not fileIn.AtEndOfStream
SLine = fileIn.ReadLine
CE=Mid(SLine,1,2) 'CE = Code début de ligne 21 04 ou 21
If CE= "04" Then
strIn=Mid(SLine,1,192) ' Pour extraire le début de la ligne'
strIn=strIn & "11315" 'pour remplacer 19725 par 11315 Pos 193 lg 5
strIn=strIn & Mid(SLine,198,66) 'Pour extraire la 2 ieme partie de la
ligne
strIn=strIn & "11315" 'pour remplacer 19725 par 11315 Pos 264 Lg 5
strIn=strIn & Mid(SLine,269,168) 'Pour extraire la 3 ieme partie de la
ligne
strIn=strIn & "11315" 'pour remplacer 19725 par 11315 Pos 437 Lg 5
strIn=strIn & Mid(SLine,442,50) 'Pour extraire la 4 ieme partie de la
ligne
strIn=strIn & "11315" 'pour remplacer 19725 par 11315 Pos 492 Lg 5
strIn=strIn & Mid(SLine,497,33) 'Pour extraire la 5 ieme partie de la
ligne
fileOut.WriteLine strIn
ElseIf CE="21" Then
strIn=Mid(SLine,1,18)
strIn=strIn & "11315" 'pour remplacer 19725 par 11315 Pos 19 Lg5
strIn=strIn & Mid(SLine,24,506) 'Pour extraire le reste de la ligne
fileOut.WriteLine strIn
Else CE="29"
fileOut.WriteLine SLine
fileOut.Close
End If
Loop
set fso=Nothing
Set fileIn=Nothing
Set fileOut=Nothing
Même en simplifiant le script le fichier OUTFILE, du moins la première ligne
dans cet exemple n'a pas de retour chariot en position 530.
NB: Le fichier INFILE est un fichier txt de longueur 530 avec un retour
chariot en position 530.
Option Explicit
Dim fso, fileIn, fileOut, strIn, CE, Sline
Set fso = CreateObject("Scripting.FileSystemObject")
Set fileIn = fso.OpenTextFile("C:INFILE", 1, True)
Set fileOut = fso.OpenTextFile("C:OUTFILE", 2, True)
Do While Not fileIn.AtEndOfStream
SLine = fileIn.ReadLine
CE=Mid(SLine,1,2) 'CE = Code enregistrement 21 04 ou 21
fileOut.WriteLine SLine
fileOut.Close
Loop
set fso=Nothing
Set fileIn=Nothing
Set fileOut=Nothing
Fausse Alerte, le retour chariot est présent mais toutes les sommes des
morceaux de lignes ne sont pas égales à 530.
Je travail dessus.
Bonjour à tous, j'ai un petit pb avec les retours chariot sur un fichier txt de longueur 530. le Script ci dessous doit lire le fichier ligne par ligne et remplacer 4 fois dans une certaine zone selon le début de la ligne une valeur par une autre (11315 longueur fixe 5). Sauf que: à la sortie outfile n'a plus de retour chariot à la fin position 530. Je suis perdu, une petite lumière serait la bienvenue !!!
Option Explicit Dim fso, fileIn, fileOut, strIn, CE, Sline Set fso = CreateObject("Scripting.FileSystemObject") Set fileIn = fso.OpenTextFile("C:INFILE", 1, True) Set fileOut = fso.OpenTextFile("C:OUTFILE", 2, True) Do While Not fileIn.AtEndOfStream SLine = fileIn.ReadLine CE=Mid(SLine,1,2) 'CE = Code début de ligne 21 04 ou 21
If CE= "04" Then strIn=Mid(SLine,1,192) ' Pour extraire le début de la ligne' strIn=strIn & "11315" 'pour remplacer 19725 par 11315 Pos 193 lg 5 strIn=strIn & Mid(SLine,198,66) 'Pour extraire la 2 ieme partie de la ligne strIn=strIn & "11315" 'pour remplacer 19725 par 11315 Pos 264 Lg 5 strIn=strIn & Mid(SLine,269,168) 'Pour extraire la 3 ieme partie de la ligne strIn=strIn & "11315" 'pour remplacer 19725 par 11315 Pos 437 Lg 5 strIn=strIn & Mid(SLine,442,50) 'Pour extraire la 4 ieme partie de la ligne strIn=strIn & "11315" 'pour remplacer 19725 par 11315 Pos 492 Lg 5 strIn=strIn & Mid(SLine,497,33) 'Pour extraire la 5 ieme partie de la ligne fileOut.WriteLine strIn ElseIf CE="21" Then strIn=Mid(SLine,1,18) strIn=strIn & "11315" 'pour remplacer 19725 par 11315 Pos 19 Lg5 strIn=strIn & Mid(SLine,24,506) 'Pour extraire le reste de la ligne fileOut.WriteLine strIn Else CE="29" fileOut.WriteLine SLine fileOut.Close End If Loop
set fso=Nothing Set fileIn=Nothing Set fileOut=Nothing Même en simplifiant le script le fichier OUTFILE, du moins la première ligne
dans cet exemple n'a pas de retour chariot en position 530. NB: Le fichier INFILE est un fichier txt de longueur 530 avec un retour chariot en position 530.
Option Explicit Dim fso, fileIn, fileOut, strIn, CE, Sline Set fso = CreateObject("Scripting.FileSystemObject") Set fileIn = fso.OpenTextFile("C:INFILE", 1, True) Set fileOut = fso.OpenTextFile("C:OUTFILE", 2, True) Do While Not fileIn.AtEndOfStream SLine = fileIn.ReadLine CE=Mid(SLine,1,2) 'CE = Code enregistrement 21 04 ou 21 fileOut.WriteLine SLine fileOut.Close Loop
set fso=Nothing Set fileIn=Nothing Set fileOut=Nothing
Fausse Alerte, le retour chariot est présent mais toutes les sommes des morceaux de lignes ne sont pas égales à 530. Je travail dessus.