Bonjour,
Je sollicite quelqu'un pour me donner un petit coup de pouce ou un coup de
pied au c....
Voila mon Pb
Je lis un fichier BA.CTE en entrée et j'extrais des zones A , B , C, D,
E.
Je reconstitue avec mes zones une nouvelle chaine de caractère et je
l'écris dans un fichier de sortie BA.TXT.
Jusque la facile et cela fonctionne correctement, mais on m'a demandé que
si la zone B et ou C et ou D est vide (avec des espaces) de ne pas
recopier la ligne dans le fichier de sortie.
J'ai donc rajouté un test If B<>" " else if C<>" " else if
D<>" " j'écrie dans le fichier sinon je passe le tour.
Mais cela ne marche pas.
Voiçi les lignes de codes:
Option Explicit
Dim fso, objShell, A, B, C, D, E, fileIn, fileOut, Sline, StrIn
Set fso = CreateObject("Scripting.FileSystemObject")
Set objShell = CreateObject("WScript.Shell")
Set fileIn = fso.OpenTextFile("C:MARPROGRAMBA.CTE", 1, True)
Set fileOut = fso.OpenTextFile("C:MARPROGRAMBA.TXT", 2, True)'fichier
temporaire de sortie
Do While not fileIn.AtEndOfStream
SLine = fileIn.ReadLine
A079 '1er block en dur
B=Mid(Sline,198,11) '3 ieme Block de donnée
C=Mid(Sline,218,5) '2 ieme Block de donnée
D=Mid(Sline,223,2) '4 ieme Block de donnée clef
E=Mid(Sline,225,12) '5 ieme Block de donnée ancien numéros
strIn = A
strIn = strIn & C
strIn = strIn & B
strIn = strIn & D
strIn = strIn & " " ' Pour mettre un espace
strIn = strIn & E
If B<>" " else if C<>" " else if D<>" " then
fileOut.WriteLine strIn
Loop
fileOut.Close
Set A = Nothing
Set B = Nothing
Set C = Nothing
Set D = Nothing
Set E = Nothing
Set fso = Nothing
Set objShell = Nothing
Set fileIn = Nothing
Set fileOut = Nothing
Set objShell =Nothing
--
Ceci est une signature automatique de MesNews.
Site : http://www.mesnews.net
Bonjour,
Je sollicite quelqu'un pour me donner un petit coup de pouce ou un coup de
pied au c....
Voila mon Pb
Je lis un fichier BA.CTE en entrée et j'extrais des zones A , B , C, D,
E.
Je reconstitue avec mes zones une nouvelle chaine de caractère et je
l'écris dans un fichier de sortie BA.TXT.
Jusque la facile et cela fonctionne correctement, mais on m'a demandé que
si la zone B et ou C et ou D est vide (avec des espaces) de ne pas
recopier la ligne dans le fichier de sortie.
J'ai donc rajouté un test If B<>" " else if C<>" " else if
D<>" " j'écrie dans le fichier sinon je passe le tour.
Mais cela ne marche pas.
Voiçi les lignes de codes:
Option Explicit
Dim fso, objShell, A, B, C, D, E, fileIn, fileOut, Sline, StrIn
Set fso = CreateObject("Scripting.FileSystemObject")
Set objShell = CreateObject("WScript.Shell")
Set fileIn = fso.OpenTextFile("C:MARPROGRAMBA.CTE", 1, True)
Set fileOut = fso.OpenTextFile("C:MARPROGRAMBA.TXT", 2, True)'fichier
temporaire de sortie
Do While not fileIn.AtEndOfStream
SLine = fileIn.ReadLine
A079 '1er block en dur
B=Mid(Sline,198,11) '3 ieme Block de donnée
C=Mid(Sline,218,5) '2 ieme Block de donnée
D=Mid(Sline,223,2) '4 ieme Block de donnée clef
E=Mid(Sline,225,12) '5 ieme Block de donnée ancien numéros
strIn = A
strIn = strIn & C
strIn = strIn & B
strIn = strIn & D
strIn = strIn & " " ' Pour mettre un espace
strIn = strIn & E
If B<>" " else if C<>" " else if D<>" " then
fileOut.WriteLine strIn
Loop
fileOut.Close
Set A = Nothing
Set B = Nothing
Set C = Nothing
Set D = Nothing
Set E = Nothing
Set fso = Nothing
Set objShell = Nothing
Set fileIn = Nothing
Set fileOut = Nothing
Set objShell =Nothing
--
Ceci est une signature automatique de MesNews.
Site : http://www.mesnews.net
Bonjour,
Je sollicite quelqu'un pour me donner un petit coup de pouce ou un coup de
pied au c....
Voila mon Pb
Je lis un fichier BA.CTE en entrée et j'extrais des zones A , B , C, D,
E.
Je reconstitue avec mes zones une nouvelle chaine de caractère et je
l'écris dans un fichier de sortie BA.TXT.
Jusque la facile et cela fonctionne correctement, mais on m'a demandé que
si la zone B et ou C et ou D est vide (avec des espaces) de ne pas
recopier la ligne dans le fichier de sortie.
J'ai donc rajouté un test If B<>" " else if C<>" " else if
D<>" " j'écrie dans le fichier sinon je passe le tour.
Mais cela ne marche pas.
Voiçi les lignes de codes:
Option Explicit
Dim fso, objShell, A, B, C, D, E, fileIn, fileOut, Sline, StrIn
Set fso = CreateObject("Scripting.FileSystemObject")
Set objShell = CreateObject("WScript.Shell")
Set fileIn = fso.OpenTextFile("C:MARPROGRAMBA.CTE", 1, True)
Set fileOut = fso.OpenTextFile("C:MARPROGRAMBA.TXT", 2, True)'fichier
temporaire de sortie
Do While not fileIn.AtEndOfStream
SLine = fileIn.ReadLine
A079 '1er block en dur
B=Mid(Sline,198,11) '3 ieme Block de donnée
C=Mid(Sline,218,5) '2 ieme Block de donnée
D=Mid(Sline,223,2) '4 ieme Block de donnée clef
E=Mid(Sline,225,12) '5 ieme Block de donnée ancien numéros
strIn = A
strIn = strIn & C
strIn = strIn & B
strIn = strIn & D
strIn = strIn & " " ' Pour mettre un espace
strIn = strIn & E
If B<>" " else if C<>" " else if D<>" " then
fileOut.WriteLine strIn
Loop
fileOut.Close
Set A = Nothing
Set B = Nothing
Set C = Nothing
Set D = Nothing
Set E = Nothing
Set fso = Nothing
Set objShell = Nothing
Set fileIn = Nothing
Set fileOut = Nothing
Set objShell =Nothing
--
Ceci est une signature automatique de MesNews.
Site : http://www.mesnews.net
Bonjour,
Je sollicite quelqu'un pour me donner un petit coup de pouce ou un
coup de pied au c....
Voila mon Pb
Je lis un fichier BA.CTE en entrée et j'extrais des zones A , B , C,
D, E.
Je reconstitue avec mes zones une nouvelle chaine de caractère et je
l'écris dans un fichier de sortie BA.TXT.
Jusque la facile et cela fonctionne correctement, mais on m'a demandé
que si la zone B et ou C et ou D est vide (avec des espaces) de ne pas
recopier la ligne dans le fichier de sortie.
J'ai donc rajouté un test If B<>" " else if C<>" " else
if D<>" " j'écrie dans le fichier sinon je passe le tour.
Mais cela ne marche pas.
Voiçi les lignes de codes:
Option Explicit
Dim fso, objShell, A, B, C, D, E, fileIn, fileOut, Sline, StrIn
Set fso = CreateObject("Scripting.FileSystemObject")
Set objShell = CreateObject("WScript.Shell")
Set fileIn = fso.OpenTextFile("C:MARPROGRAMBA.CTE", 1, True)
Set fileOut = fso.OpenTextFile("C:MARPROGRAMBA.TXT", 2,
True)'fichier temporaire de sortie
Do While not fileIn.AtEndOfStream
SLine = fileIn.ReadLine
A079 '1er block en dur
B=Mid(Sline,198,11) '3 ieme Block de donnée
C=Mid(Sline,218,5) '2 ieme Block de donnée
D=Mid(Sline,223,2) '4 ieme Block de donnée clef
E=Mid(Sline,225,12) '5 ieme Block de donnée ancien numéros
strIn = A
strIn = strIn & C
strIn = strIn & B
strIn = strIn & D
strIn = strIn & " " ' Pour mettre un espace
strIn = strIn & E
If B<>" " else if C<>" " else if D<>" " then
fileOut.WriteLine strIn
Loop
fileOut.Close
Set A = Nothing
Set B = Nothing
Set C = Nothing
Set D = Nothing
Set E = Nothing
Set fso = Nothing
Set objShell = Nothing
Set fileIn = Nothing
Set fileOut = Nothing
Set objShell =Nothing
Bonjour,
Je sollicite quelqu'un pour me donner un petit coup de pouce ou un
coup de pied au c....
Voila mon Pb
Je lis un fichier BA.CTE en entrée et j'extrais des zones A , B , C,
D, E.
Je reconstitue avec mes zones une nouvelle chaine de caractère et je
l'écris dans un fichier de sortie BA.TXT.
Jusque la facile et cela fonctionne correctement, mais on m'a demandé
que si la zone B et ou C et ou D est vide (avec des espaces) de ne pas
recopier la ligne dans le fichier de sortie.
J'ai donc rajouté un test If B<>" " else if C<>" " else
if D<>" " j'écrie dans le fichier sinon je passe le tour.
Mais cela ne marche pas.
Voiçi les lignes de codes:
Option Explicit
Dim fso, objShell, A, B, C, D, E, fileIn, fileOut, Sline, StrIn
Set fso = CreateObject("Scripting.FileSystemObject")
Set objShell = CreateObject("WScript.Shell")
Set fileIn = fso.OpenTextFile("C:MARPROGRAMBA.CTE", 1, True)
Set fileOut = fso.OpenTextFile("C:MARPROGRAMBA.TXT", 2,
True)'fichier temporaire de sortie
Do While not fileIn.AtEndOfStream
SLine = fileIn.ReadLine
A079 '1er block en dur
B=Mid(Sline,198,11) '3 ieme Block de donnée
C=Mid(Sline,218,5) '2 ieme Block de donnée
D=Mid(Sline,223,2) '4 ieme Block de donnée clef
E=Mid(Sline,225,12) '5 ieme Block de donnée ancien numéros
strIn = A
strIn = strIn & C
strIn = strIn & B
strIn = strIn & D
strIn = strIn & " " ' Pour mettre un espace
strIn = strIn & E
If B<>" " else if C<>" " else if D<>" " then
fileOut.WriteLine strIn
Loop
fileOut.Close
Set A = Nothing
Set B = Nothing
Set C = Nothing
Set D = Nothing
Set E = Nothing
Set fso = Nothing
Set objShell = Nothing
Set fileIn = Nothing
Set fileOut = Nothing
Set objShell =Nothing
Bonjour,
Je sollicite quelqu'un pour me donner un petit coup de pouce ou un
coup de pied au c....
Voila mon Pb
Je lis un fichier BA.CTE en entrée et j'extrais des zones A , B , C,
D, E.
Je reconstitue avec mes zones une nouvelle chaine de caractère et je
l'écris dans un fichier de sortie BA.TXT.
Jusque la facile et cela fonctionne correctement, mais on m'a demandé
que si la zone B et ou C et ou D est vide (avec des espaces) de ne pas
recopier la ligne dans le fichier de sortie.
J'ai donc rajouté un test If B<>" " else if C<>" " else
if D<>" " j'écrie dans le fichier sinon je passe le tour.
Mais cela ne marche pas.
Voiçi les lignes de codes:
Option Explicit
Dim fso, objShell, A, B, C, D, E, fileIn, fileOut, Sline, StrIn
Set fso = CreateObject("Scripting.FileSystemObject")
Set objShell = CreateObject("WScript.Shell")
Set fileIn = fso.OpenTextFile("C:MARPROGRAMBA.CTE", 1, True)
Set fileOut = fso.OpenTextFile("C:MARPROGRAMBA.TXT", 2,
True)'fichier temporaire de sortie
Do While not fileIn.AtEndOfStream
SLine = fileIn.ReadLine
A079 '1er block en dur
B=Mid(Sline,198,11) '3 ieme Block de donnée
C=Mid(Sline,218,5) '2 ieme Block de donnée
D=Mid(Sline,223,2) '4 ieme Block de donnée clef
E=Mid(Sline,225,12) '5 ieme Block de donnée ancien numéros
strIn = A
strIn = strIn & C
strIn = strIn & B
strIn = strIn & D
strIn = strIn & " " ' Pour mettre un espace
strIn = strIn & E
If B<>" " else if C<>" " else if D<>" " then
fileOut.WriteLine strIn
Loop
fileOut.Close
Set A = Nothing
Set B = Nothing
Set C = Nothing
Set D = Nothing
Set E = Nothing
Set fso = Nothing
Set objShell = Nothing
Set fileIn = Nothing
Set fileOut = Nothing
Set objShell =Nothing
---DGI972--- wrote:Bonjour,
Je sollicite quelqu'un pour me donner un petit coup de pouce ou un
coup de pied au c....
Voila mon Pb
Je lis un fichier BA.CTE en entrée et j'extrais des zones A , B , C,
D, E.
Je reconstitue avec mes zones une nouvelle chaine de caractère et je
l'écris dans un fichier de sortie BA.TXT.
Jusque la facile et cela fonctionne correctement, mais on m'a demandé
que si la zone B et ou C et ou D est vide (avec des espaces) de ne pas
recopier la ligne dans le fichier de sortie.
J'ai donc rajouté un test If B<>" " else if C<>" " else
if D<>" " j'écrie dans le fichier sinon je passe le tour.
Mais cela ne marche pas.
Voiçi les lignes de codes:
Option Explicit
Dim fso, objShell, A, B, C, D, E, fileIn, fileOut, Sline, StrIn
Set fso = CreateObject("Scripting.FileSystemObject")
Set objShell = CreateObject("WScript.Shell")
Set fileIn = fso.OpenTextFile("C:MARPROGRAMBA.CTE", 1, True)
Set fileOut = fso.OpenTextFile("C:MARPROGRAMBA.TXT", 2,
True)'fichier temporaire de sortie
Do While not fileIn.AtEndOfStream
SLine = fileIn.ReadLine
A079 '1er block en dur
B=Mid(Sline,198,11) '3 ieme Block de donnée
C=Mid(Sline,218,5) '2 ieme Block de donnée
D=Mid(Sline,223,2) '4 ieme Block de donnée clef
E=Mid(Sline,225,12) '5 ieme Block de donnée ancien numéros
strIn = A
strIn = strIn & C
strIn = strIn & B
strIn = strIn & D
strIn = strIn & " " ' Pour mettre un espace
strIn = strIn & E
If B<>" " else if C<>" " else if D<>" " then
fileOut.WriteLine strIn
Loop
fileOut.Close
Set A = Nothing
Set B = Nothing
Set C = Nothing
Set D = Nothing
Set E = Nothing
Set fso = Nothing
Set objShell = Nothing
Set fileIn = Nothing
Set fileOut = Nothing
Set objShell =Nothing
Par exemple
If Not InStr(B & C & D, " ") > 0 Then
fileOut.WriteLine strIn
End If
Ou comme ça:
A = 18079 '1er block en dur
B = Mid(Sline,198,11) '3 ieme Block de donnée
C = Mid(Sline,218,5) '2 ieme Block de donnée
D = Mid(Sline,223,2) '4 ieme Block de donnée clef
E=Trim(Mid(Sline,225,12) '5 ieme Block de donnée ancien numéros
If Len(Trim(B)) > 0 And Len(Trim(C)) > 0 And Len(Trim(D)) > 0 Then
fileOut.WriteLine strIn
End If
Ps: Les lignes "Set A= Nothing" a "Set E = Nothing" ne servent à rien
---DGI972--- wrote:
Bonjour,
Je sollicite quelqu'un pour me donner un petit coup de pouce ou un
coup de pied au c....
Voila mon Pb
Je lis un fichier BA.CTE en entrée et j'extrais des zones A , B , C,
D, E.
Je reconstitue avec mes zones une nouvelle chaine de caractère et je
l'écris dans un fichier de sortie BA.TXT.
Jusque la facile et cela fonctionne correctement, mais on m'a demandé
que si la zone B et ou C et ou D est vide (avec des espaces) de ne pas
recopier la ligne dans le fichier de sortie.
J'ai donc rajouté un test If B<>" " else if C<>" " else
if D<>" " j'écrie dans le fichier sinon je passe le tour.
Mais cela ne marche pas.
Voiçi les lignes de codes:
Option Explicit
Dim fso, objShell, A, B, C, D, E, fileIn, fileOut, Sline, StrIn
Set fso = CreateObject("Scripting.FileSystemObject")
Set objShell = CreateObject("WScript.Shell")
Set fileIn = fso.OpenTextFile("C:MARPROGRAMBA.CTE", 1, True)
Set fileOut = fso.OpenTextFile("C:MARPROGRAMBA.TXT", 2,
True)'fichier temporaire de sortie
Do While not fileIn.AtEndOfStream
SLine = fileIn.ReadLine
A079 '1er block en dur
B=Mid(Sline,198,11) '3 ieme Block de donnée
C=Mid(Sline,218,5) '2 ieme Block de donnée
D=Mid(Sline,223,2) '4 ieme Block de donnée clef
E=Mid(Sline,225,12) '5 ieme Block de donnée ancien numéros
strIn = A
strIn = strIn & C
strIn = strIn & B
strIn = strIn & D
strIn = strIn & " " ' Pour mettre un espace
strIn = strIn & E
If B<>" " else if C<>" " else if D<>" " then
fileOut.WriteLine strIn
Loop
fileOut.Close
Set A = Nothing
Set B = Nothing
Set C = Nothing
Set D = Nothing
Set E = Nothing
Set fso = Nothing
Set objShell = Nothing
Set fileIn = Nothing
Set fileOut = Nothing
Set objShell =Nothing
Par exemple
If Not InStr(B & C & D, " ") > 0 Then
fileOut.WriteLine strIn
End If
Ou comme ça:
A = 18079 '1er block en dur
B = Mid(Sline,198,11) '3 ieme Block de donnée
C = Mid(Sline,218,5) '2 ieme Block de donnée
D = Mid(Sline,223,2) '4 ieme Block de donnée clef
E=Trim(Mid(Sline,225,12) '5 ieme Block de donnée ancien numéros
If Len(Trim(B)) > 0 And Len(Trim(C)) > 0 And Len(Trim(D)) > 0 Then
fileOut.WriteLine strIn
End If
Ps: Les lignes "Set A= Nothing" a "Set E = Nothing" ne servent à rien
---DGI972--- wrote:Bonjour,
Je sollicite quelqu'un pour me donner un petit coup de pouce ou un
coup de pied au c....
Voila mon Pb
Je lis un fichier BA.CTE en entrée et j'extrais des zones A , B , C,
D, E.
Je reconstitue avec mes zones une nouvelle chaine de caractère et je
l'écris dans un fichier de sortie BA.TXT.
Jusque la facile et cela fonctionne correctement, mais on m'a demandé
que si la zone B et ou C et ou D est vide (avec des espaces) de ne pas
recopier la ligne dans le fichier de sortie.
J'ai donc rajouté un test If B<>" " else if C<>" " else
if D<>" " j'écrie dans le fichier sinon je passe le tour.
Mais cela ne marche pas.
Voiçi les lignes de codes:
Option Explicit
Dim fso, objShell, A, B, C, D, E, fileIn, fileOut, Sline, StrIn
Set fso = CreateObject("Scripting.FileSystemObject")
Set objShell = CreateObject("WScript.Shell")
Set fileIn = fso.OpenTextFile("C:MARPROGRAMBA.CTE", 1, True)
Set fileOut = fso.OpenTextFile("C:MARPROGRAMBA.TXT", 2,
True)'fichier temporaire de sortie
Do While not fileIn.AtEndOfStream
SLine = fileIn.ReadLine
A079 '1er block en dur
B=Mid(Sline,198,11) '3 ieme Block de donnée
C=Mid(Sline,218,5) '2 ieme Block de donnée
D=Mid(Sline,223,2) '4 ieme Block de donnée clef
E=Mid(Sline,225,12) '5 ieme Block de donnée ancien numéros
strIn = A
strIn = strIn & C
strIn = strIn & B
strIn = strIn & D
strIn = strIn & " " ' Pour mettre un espace
strIn = strIn & E
If B<>" " else if C<>" " else if D<>" " then
fileOut.WriteLine strIn
Loop
fileOut.Close
Set A = Nothing
Set B = Nothing
Set C = Nothing
Set D = Nothing
Set E = Nothing
Set fso = Nothing
Set objShell = Nothing
Set fileIn = Nothing
Set fileOut = Nothing
Set objShell =Nothing
Par exemple
If Not InStr(B & C & D, " ") > 0 Then
fileOut.WriteLine strIn
End If
Ou comme ça:
A = 18079 '1er block en dur
B = Mid(Sline,198,11) '3 ieme Block de donnée
C = Mid(Sline,218,5) '2 ieme Block de donnée
D = Mid(Sline,223,2) '4 ieme Block de donnée clef
E=Trim(Mid(Sline,225,12) '5 ieme Block de donnée ancien numéros
If Len(Trim(B)) > 0 And Len(Trim(C)) > 0 And Len(Trim(D)) > 0 Then
fileOut.WriteLine strIn
End If
Ps: Les lignes "Set A= Nothing" a "Set E = Nothing" ne servent à rien
jbongran a exprimé avec précision :---DGI972--- wrote:Bonjour,
Je sollicite quelqu'un pour me donner un petit coup de pouce ou un
coup de pied au c....
Voila mon Pb
Je lis un fichier BA.CTE en entrée et j'extrais des zones A , B , C,
D, E.
Je reconstitue avec mes zones une nouvelle chaine de caractère et je
l'écris dans un fichier de sortie BA.TXT.
Jusque la facile et cela fonctionne correctement, mais on m'a
demandé que si la zone B et ou C et ou D est vide (avec des
espaces) de ne pas recopier la ligne dans le fichier de sortie.
J'ai donc rajouté un test If B<>" " else if C<>" "
else if D<>" " j'écrie dans le fichier sinon je passe le tour.
Mais cela ne marche pas.
Voiçi les lignes de codes:
Option Explicit
Dim fso, objShell, A, B, C, D, E, fileIn, fileOut, Sline, StrIn
Set fso = CreateObject("Scripting.FileSystemObject")
Set objShell = CreateObject("WScript.Shell")
Set fileIn = fso.OpenTextFile("C:MARPROGRAMBA.CTE", 1, True)
Set fileOut = fso.OpenTextFile("C:MARPROGRAMBA.TXT", 2,
True)'fichier temporaire de sortie
Do While not fileIn.AtEndOfStream
SLine = fileIn.ReadLine
A079 '1er block en dur
B=Mid(Sline,198,11) '3 ieme Block de donnée
C=Mid(Sline,218,5) '2 ieme Block de donnée
D=Mid(Sline,223,2) '4 ieme Block de donnée clef
E=Mid(Sline,225,12) '5 ieme Block de donnée ancien numéros
strIn = A
strIn = strIn & C
strIn = strIn & B
strIn = strIn & D
strIn = strIn & " " ' Pour mettre un espace
strIn = strIn & E
If B<>" " else if C<>" " else if D<>" " then
fileOut.WriteLine strIn
Loop
fileOut.Close
Set A = Nothing
Set B = Nothing
Set C = Nothing
Set D = Nothing
Set E = Nothing
Set fso = Nothing
Set objShell = Nothing
Set fileIn = Nothing
Set fileOut = Nothing
Set objShell =Nothing
Par exemple
If Not InStr(B & C & D, " ") > 0 Then
fileOut.WriteLine strIn
End If
Ou comme ça:
A = 18079 '1er block en dur
B = Mid(Sline,198,11) '3 ieme Block de donnée
C = Mid(Sline,218,5) '2 ieme Block de donnée
D = Mid(Sline,223,2) '4 ieme Block de donnée clef
E=Trim(Mid(Sline,225,12) '5 ieme Block de donnée ancien numéros
If Len(Trim(B)) > 0 And Len(Trim(C)) > 0 And Len(Trim(D)) > 0 Then
fileOut.WriteLine strIn
End If
Ps: Les lignes "Set A= Nothing" a "Set E = Nothing" ne servent à rien
Merci j'essaye cela dans 2 heures,
Mais la variable B doit avoir 11 espaces la C 5 espaces et la D 2
espaces.
J'était persuadé de libérer proprement les variables en faisant SET
A=Nothing
Je vous donne le résultat tout à l'heure.
Merci
jbongran a exprimé avec précision :
---DGI972--- wrote:
Bonjour,
Je sollicite quelqu'un pour me donner un petit coup de pouce ou un
coup de pied au c....
Voila mon Pb
Je lis un fichier BA.CTE en entrée et j'extrais des zones A , B , C,
D, E.
Je reconstitue avec mes zones une nouvelle chaine de caractère et je
l'écris dans un fichier de sortie BA.TXT.
Jusque la facile et cela fonctionne correctement, mais on m'a
demandé que si la zone B et ou C et ou D est vide (avec des
espaces) de ne pas recopier la ligne dans le fichier de sortie.
J'ai donc rajouté un test If B<>" " else if C<>" "
else if D<>" " j'écrie dans le fichier sinon je passe le tour.
Mais cela ne marche pas.
Voiçi les lignes de codes:
Option Explicit
Dim fso, objShell, A, B, C, D, E, fileIn, fileOut, Sline, StrIn
Set fso = CreateObject("Scripting.FileSystemObject")
Set objShell = CreateObject("WScript.Shell")
Set fileIn = fso.OpenTextFile("C:MARPROGRAMBA.CTE", 1, True)
Set fileOut = fso.OpenTextFile("C:MARPROGRAMBA.TXT", 2,
True)'fichier temporaire de sortie
Do While not fileIn.AtEndOfStream
SLine = fileIn.ReadLine
A079 '1er block en dur
B=Mid(Sline,198,11) '3 ieme Block de donnée
C=Mid(Sline,218,5) '2 ieme Block de donnée
D=Mid(Sline,223,2) '4 ieme Block de donnée clef
E=Mid(Sline,225,12) '5 ieme Block de donnée ancien numéros
strIn = A
strIn = strIn & C
strIn = strIn & B
strIn = strIn & D
strIn = strIn & " " ' Pour mettre un espace
strIn = strIn & E
If B<>" " else if C<>" " else if D<>" " then
fileOut.WriteLine strIn
Loop
fileOut.Close
Set A = Nothing
Set B = Nothing
Set C = Nothing
Set D = Nothing
Set E = Nothing
Set fso = Nothing
Set objShell = Nothing
Set fileIn = Nothing
Set fileOut = Nothing
Set objShell =Nothing
Par exemple
If Not InStr(B & C & D, " ") > 0 Then
fileOut.WriteLine strIn
End If
Ou comme ça:
A = 18079 '1er block en dur
B = Mid(Sline,198,11) '3 ieme Block de donnée
C = Mid(Sline,218,5) '2 ieme Block de donnée
D = Mid(Sline,223,2) '4 ieme Block de donnée clef
E=Trim(Mid(Sline,225,12) '5 ieme Block de donnée ancien numéros
If Len(Trim(B)) > 0 And Len(Trim(C)) > 0 And Len(Trim(D)) > 0 Then
fileOut.WriteLine strIn
End If
Ps: Les lignes "Set A= Nothing" a "Set E = Nothing" ne servent à rien
Merci j'essaye cela dans 2 heures,
Mais la variable B doit avoir 11 espaces la C 5 espaces et la D 2
espaces.
J'était persuadé de libérer proprement les variables en faisant SET
A=Nothing
Je vous donne le résultat tout à l'heure.
Merci
jbongran a exprimé avec précision :---DGI972--- wrote:Bonjour,
Je sollicite quelqu'un pour me donner un petit coup de pouce ou un
coup de pied au c....
Voila mon Pb
Je lis un fichier BA.CTE en entrée et j'extrais des zones A , B , C,
D, E.
Je reconstitue avec mes zones une nouvelle chaine de caractère et je
l'écris dans un fichier de sortie BA.TXT.
Jusque la facile et cela fonctionne correctement, mais on m'a
demandé que si la zone B et ou C et ou D est vide (avec des
espaces) de ne pas recopier la ligne dans le fichier de sortie.
J'ai donc rajouté un test If B<>" " else if C<>" "
else if D<>" " j'écrie dans le fichier sinon je passe le tour.
Mais cela ne marche pas.
Voiçi les lignes de codes:
Option Explicit
Dim fso, objShell, A, B, C, D, E, fileIn, fileOut, Sline, StrIn
Set fso = CreateObject("Scripting.FileSystemObject")
Set objShell = CreateObject("WScript.Shell")
Set fileIn = fso.OpenTextFile("C:MARPROGRAMBA.CTE", 1, True)
Set fileOut = fso.OpenTextFile("C:MARPROGRAMBA.TXT", 2,
True)'fichier temporaire de sortie
Do While not fileIn.AtEndOfStream
SLine = fileIn.ReadLine
A079 '1er block en dur
B=Mid(Sline,198,11) '3 ieme Block de donnée
C=Mid(Sline,218,5) '2 ieme Block de donnée
D=Mid(Sline,223,2) '4 ieme Block de donnée clef
E=Mid(Sline,225,12) '5 ieme Block de donnée ancien numéros
strIn = A
strIn = strIn & C
strIn = strIn & B
strIn = strIn & D
strIn = strIn & " " ' Pour mettre un espace
strIn = strIn & E
If B<>" " else if C<>" " else if D<>" " then
fileOut.WriteLine strIn
Loop
fileOut.Close
Set A = Nothing
Set B = Nothing
Set C = Nothing
Set D = Nothing
Set E = Nothing
Set fso = Nothing
Set objShell = Nothing
Set fileIn = Nothing
Set fileOut = Nothing
Set objShell =Nothing
Par exemple
If Not InStr(B & C & D, " ") > 0 Then
fileOut.WriteLine strIn
End If
Ou comme ça:
A = 18079 '1er block en dur
B = Mid(Sline,198,11) '3 ieme Block de donnée
C = Mid(Sline,218,5) '2 ieme Block de donnée
D = Mid(Sline,223,2) '4 ieme Block de donnée clef
E=Trim(Mid(Sline,225,12) '5 ieme Block de donnée ancien numéros
If Len(Trim(B)) > 0 And Len(Trim(C)) > 0 And Len(Trim(D)) > 0 Then
fileOut.WriteLine strIn
End If
Ps: Les lignes "Set A= Nothing" a "Set E = Nothing" ne servent à rien
Merci j'essaye cela dans 2 heures,
Mais la variable B doit avoir 11 espaces la C 5 espaces et la D 2
espaces.
J'était persuadé de libérer proprement les variables en faisant SET
A=Nothing
Je vous donne le résultat tout à l'heure.
Merci
Bonjour,
Il semble qu'il faille ecrire dans le fichier sie B, C, D ne valident pas les
conditions proposees.
Je suggeste donc de remplacer
strIn = A
strIn = strIn & C
strIn = strIn & B
strIn = strIn & D
strIn = strIn & " " ' Pour mettre un espace
strIn = strIn & E
If B<>" " else if C<>" " else if D<>" " then
fileOut.WriteLine strIn
par
If (B<>" ") and (C<>" ") and (D<>" ") then
strIn = A
strIn = strIn & C
strIn = strIn & B
strIn = strIn & D
strIn = strIn & " " ' Pour mettre un espace
strIn = strIn & E
fileOut.WriteLine strIn
end if
Ce qui optimisera le calcul en ne calculant strIn que si la condition est
verifiee.
Cordialement,
Fabrice Canel
"---DGI972---" <gilles.dermigny@*NOSPAM*laposte.net> wrote in message
news:Bonjour,
Je sollicite quelqu'un pour me donner un petit coup de pouce ou un coup de
pied au c....
Voila mon Pb
Je lis un fichier BA.CTE en entrée et j'extrais des zones A , B , C, D, E.
Je reconstitue avec mes zones une nouvelle chaine de caractère et je
l'écris dans un fichier de sortie BA.TXT.
Jusque la facile et cela fonctionne correctement, mais on m'a demandé que
si la zone B et ou C et ou D est vide (avec des espaces) de ne pas recopier
la ligne dans le fichier de sortie.
J'ai donc rajouté un test If B<>" " else if C<>" " else if
D<>" " j'écrie dans le fichier sinon je passe le tour.
Mais cela ne marche pas.
Voiçi les lignes de codes:
Option Explicit
Dim fso, objShell, A, B, C, D, E, fileIn, fileOut, Sline, StrIn
Set fso = CreateObject("Scripting.FileSystemObject")
Set objShell = CreateObject("WScript.Shell")
Set fileIn = fso.OpenTextFile("C:MARPROGRAMBA.CTE", 1, True)
Set fileOut = fso.OpenTextFile("C:MARPROGRAMBA.TXT", 2, True)'fichier
temporaire de sortie
Do While not fileIn.AtEndOfStream
SLine = fileIn.ReadLine
A079 '1er block en dur
B=Mid(Sline,198,11) '3 ieme Block de donnée
C=Mid(Sline,218,5) '2 ieme Block de donnée
D=Mid(Sline,223,2) '4 ieme Block de donnée clef
E=Mid(Sline,225,12) '5 ieme Block de donnée ancien numéros
strIn = A
strIn = strIn & C
strIn = strIn & B
strIn = strIn & D
strIn = strIn & " " ' Pour mettre un espace
strIn = strIn & E
If B<>" " else if C<>" " else if D<>" " then
fileOut.WriteLine strIn
Loop
fileOut.Close
Set A = Nothing
Set B = Nothing
Set C = Nothing
Set D = Nothing
Set E = Nothing
Set fso = Nothing
Set objShell = Nothing
Set fileIn = Nothing
Set fileOut = Nothing
Set objShell =Nothing
-- Ceci est une signature automatique de MesNews.
Site : http://www.mesnews.net
Bonjour,
Il semble qu'il faille ecrire dans le fichier sie B, C, D ne valident pas les
conditions proposees.
Je suggeste donc de remplacer
strIn = A
strIn = strIn & C
strIn = strIn & B
strIn = strIn & D
strIn = strIn & " " ' Pour mettre un espace
strIn = strIn & E
If B<>" " else if C<>" " else if D<>" " then
fileOut.WriteLine strIn
par
If (B<>" ") and (C<>" ") and (D<>" ") then
strIn = A
strIn = strIn & C
strIn = strIn & B
strIn = strIn & D
strIn = strIn & " " ' Pour mettre un espace
strIn = strIn & E
fileOut.WriteLine strIn
end if
Ce qui optimisera le calcul en ne calculant strIn que si la condition est
verifiee.
Cordialement,
Fabrice Canel
"---DGI972---" <gilles.dermigny@*NOSPAM*laposte.net> wrote in message
news:mn.743e7d56cf57789e.33554@NOSPAMlaposte.net...
Bonjour,
Je sollicite quelqu'un pour me donner un petit coup de pouce ou un coup de
pied au c....
Voila mon Pb
Je lis un fichier BA.CTE en entrée et j'extrais des zones A , B , C, D, E.
Je reconstitue avec mes zones une nouvelle chaine de caractère et je
l'écris dans un fichier de sortie BA.TXT.
Jusque la facile et cela fonctionne correctement, mais on m'a demandé que
si la zone B et ou C et ou D est vide (avec des espaces) de ne pas recopier
la ligne dans le fichier de sortie.
J'ai donc rajouté un test If B<>" " else if C<>" " else if
D<>" " j'écrie dans le fichier sinon je passe le tour.
Mais cela ne marche pas.
Voiçi les lignes de codes:
Option Explicit
Dim fso, objShell, A, B, C, D, E, fileIn, fileOut, Sline, StrIn
Set fso = CreateObject("Scripting.FileSystemObject")
Set objShell = CreateObject("WScript.Shell")
Set fileIn = fso.OpenTextFile("C:MARPROGRAMBA.CTE", 1, True)
Set fileOut = fso.OpenTextFile("C:MARPROGRAMBA.TXT", 2, True)'fichier
temporaire de sortie
Do While not fileIn.AtEndOfStream
SLine = fileIn.ReadLine
A079 '1er block en dur
B=Mid(Sline,198,11) '3 ieme Block de donnée
C=Mid(Sline,218,5) '2 ieme Block de donnée
D=Mid(Sline,223,2) '4 ieme Block de donnée clef
E=Mid(Sline,225,12) '5 ieme Block de donnée ancien numéros
strIn = A
strIn = strIn & C
strIn = strIn & B
strIn = strIn & D
strIn = strIn & " " ' Pour mettre un espace
strIn = strIn & E
If B<>" " else if C<>" " else if D<>" " then
fileOut.WriteLine strIn
Loop
fileOut.Close
Set A = Nothing
Set B = Nothing
Set C = Nothing
Set D = Nothing
Set E = Nothing
Set fso = Nothing
Set objShell = Nothing
Set fileIn = Nothing
Set fileOut = Nothing
Set objShell =Nothing
-- Ceci est une signature automatique de MesNews.
Site : http://www.mesnews.net
Bonjour,
Il semble qu'il faille ecrire dans le fichier sie B, C, D ne valident pas les
conditions proposees.
Je suggeste donc de remplacer
strIn = A
strIn = strIn & C
strIn = strIn & B
strIn = strIn & D
strIn = strIn & " " ' Pour mettre un espace
strIn = strIn & E
If B<>" " else if C<>" " else if D<>" " then
fileOut.WriteLine strIn
par
If (B<>" ") and (C<>" ") and (D<>" ") then
strIn = A
strIn = strIn & C
strIn = strIn & B
strIn = strIn & D
strIn = strIn & " " ' Pour mettre un espace
strIn = strIn & E
fileOut.WriteLine strIn
end if
Ce qui optimisera le calcul en ne calculant strIn que si la condition est
verifiee.
Cordialement,
Fabrice Canel
"---DGI972---" <gilles.dermigny@*NOSPAM*laposte.net> wrote in message
news:Bonjour,
Je sollicite quelqu'un pour me donner un petit coup de pouce ou un coup de
pied au c....
Voila mon Pb
Je lis un fichier BA.CTE en entrée et j'extrais des zones A , B , C, D, E.
Je reconstitue avec mes zones une nouvelle chaine de caractère et je
l'écris dans un fichier de sortie BA.TXT.
Jusque la facile et cela fonctionne correctement, mais on m'a demandé que
si la zone B et ou C et ou D est vide (avec des espaces) de ne pas recopier
la ligne dans le fichier de sortie.
J'ai donc rajouté un test If B<>" " else if C<>" " else if
D<>" " j'écrie dans le fichier sinon je passe le tour.
Mais cela ne marche pas.
Voiçi les lignes de codes:
Option Explicit
Dim fso, objShell, A, B, C, D, E, fileIn, fileOut, Sline, StrIn
Set fso = CreateObject("Scripting.FileSystemObject")
Set objShell = CreateObject("WScript.Shell")
Set fileIn = fso.OpenTextFile("C:MARPROGRAMBA.CTE", 1, True)
Set fileOut = fso.OpenTextFile("C:MARPROGRAMBA.TXT", 2, True)'fichier
temporaire de sortie
Do While not fileIn.AtEndOfStream
SLine = fileIn.ReadLine
A079 '1er block en dur
B=Mid(Sline,198,11) '3 ieme Block de donnée
C=Mid(Sline,218,5) '2 ieme Block de donnée
D=Mid(Sline,223,2) '4 ieme Block de donnée clef
E=Mid(Sline,225,12) '5 ieme Block de donnée ancien numéros
strIn = A
strIn = strIn & C
strIn = strIn & B
strIn = strIn & D
strIn = strIn & " " ' Pour mettre un espace
strIn = strIn & E
If B<>" " else if C<>" " else if D<>" " then
fileOut.WriteLine strIn
Loop
fileOut.Close
Set A = Nothing
Set B = Nothing
Set C = Nothing
Set D = Nothing
Set E = Nothing
Set fso = Nothing
Set objShell = Nothing
Set fileIn = Nothing
Set fileOut = Nothing
Set objShell =Nothing
-- Ceci est une signature automatique de MesNews.
Site : http://www.mesnews.net
Dans le message :,
---DGI972--- <gilles.dermigny@*NO SPAM* laposte.net> disait :jbongran a exprimé avec précision :---DGI972--- wrote:Bonjour,
Je sollicite quelqu'un pour me donner un petit coup de pouce ou un
coup de pied au c....
Voila mon Pb
Je lis un fichier BA.CTE en entrée et j'extrais des zones A , B , C,
D, E.
Je reconstitue avec mes zones une nouvelle chaine de caractère et je
l'écris dans un fichier de sortie BA.TXT.
Jusque la facile et cela fonctionne correctement, mais on m'a
demandé que si la zone B et ou C et ou D est vide (avec des
espaces) de ne pas recopier la ligne dans le fichier de sortie.
J'ai donc rajouté un test If B<>" " else if C<>" "
else if D<>" " j'écrie dans le fichier sinon je passe le tour.
Mais cela ne marche pas.
Voiçi les lignes de codes:
Option Explicit
Dim fso, objShell, A, B, C, D, E, fileIn, fileOut, Sline, StrIn
Set fso = CreateObject("Scripting.FileSystemObject")
Set objShell = CreateObject("WScript.Shell")
Set fileIn = fso.OpenTextFile("C:MARPROGRAMBA.CTE", 1, True)
Set fileOut = fso.OpenTextFile("C:MARPROGRAMBA.TXT", 2,
True)'fichier temporaire de sortie
Do While not fileIn.AtEndOfStream
SLine = fileIn.ReadLine
A079 '1er block en dur
B=Mid(Sline,198,11) '3 ieme Block de donnée
C=Mid(Sline,218,5) '2 ieme Block de donnée
D=Mid(Sline,223,2) '4 ieme Block de donnée clef
E=Mid(Sline,225,12) '5 ieme Block de donnée ancien numéros
strIn = A
strIn = strIn & C
strIn = strIn & B
strIn = strIn & D
strIn = strIn & " " ' Pour mettre un espace
strIn = strIn & E
If B<>" " else if C<>" " else if D<>" " then
fileOut.WriteLine strIn
Loop
fileOut.Close
Set A = Nothing
Set B = Nothing
Set C = Nothing
Set D = Nothing
Set E = Nothing
Set fso = Nothing
Set objShell = Nothing
Set fileIn = Nothing
Set fileOut = Nothing
Set objShell =Nothing
Par exemple
If Not InStr(B & C & D, " ") > 0 Then
fileOut.WriteLine strIn
End If
Ou comme ça:
A = 18079 '1er block en dur
B = Mid(Sline,198,11) '3 ieme Block de donnée
C = Mid(Sline,218,5) '2 ieme Block de donnée
D = Mid(Sline,223,2) '4 ieme Block de donnée clef
E=Trim(Mid(Sline,225,12) '5 ieme Block de donnée ancien numéros
If Len(Trim(B)) > 0 And Len(Trim(C)) > 0 And Len(Trim(D)) > 0 Then
fileOut.WriteLine strIn
End If
Ps: Les lignes "Set A= Nothing" a "Set E = Nothing" ne servent à rien
Merci j'essaye cela dans 2 heures,
Mais la variable B doit avoir 11 espaces la C 5 espaces et la D 2
espaces.
J'était persuadé de libérer proprement les variables en faisant SET
A=Nothing
Je vous donne le résultat tout à l'heure.
Merci
Bonjour,
L'énoncé de ton problème n'est pas très clair ("et ou" en informatique c'est
un tantinet ambigü :-))
Soit :
- lorsqu'aucune des variables n'est remplie avec des blancs, je copie la
ligne
Soit :
- lorsqu'au moins une des trois variables n'est pas remplie avec de blancs,
je copie la ligne.
Soit :
- une autre solution peut-être ??
Première hypothèse, tu peux prendre la solution de Fabrice.
Deuxième hypothèse, tu prends la solution de Fabrice avec la modif suivante :
If (B<>" ") or (C<>" ") or (D<>" ")) then
Troisième hypothèse, tu reformules ta phrase, éventuellement en donnant des
exemples ?
Dans le message :mn.796a7d5655f4e3f7.33384@NOSPAMlaposte.net,
---DGI972--- <gilles.dermigny@*NO SPAM* laposte.net> disait :
jbongran a exprimé avec précision :
---DGI972--- wrote:
Bonjour,
Je sollicite quelqu'un pour me donner un petit coup de pouce ou un
coup de pied au c....
Voila mon Pb
Je lis un fichier BA.CTE en entrée et j'extrais des zones A , B , C,
D, E.
Je reconstitue avec mes zones une nouvelle chaine de caractère et je
l'écris dans un fichier de sortie BA.TXT.
Jusque la facile et cela fonctionne correctement, mais on m'a
demandé que si la zone B et ou C et ou D est vide (avec des
espaces) de ne pas recopier la ligne dans le fichier de sortie.
J'ai donc rajouté un test If B<>" " else if C<>" "
else if D<>" " j'écrie dans le fichier sinon je passe le tour.
Mais cela ne marche pas.
Voiçi les lignes de codes:
Option Explicit
Dim fso, objShell, A, B, C, D, E, fileIn, fileOut, Sline, StrIn
Set fso = CreateObject("Scripting.FileSystemObject")
Set objShell = CreateObject("WScript.Shell")
Set fileIn = fso.OpenTextFile("C:MARPROGRAMBA.CTE", 1, True)
Set fileOut = fso.OpenTextFile("C:MARPROGRAMBA.TXT", 2,
True)'fichier temporaire de sortie
Do While not fileIn.AtEndOfStream
SLine = fileIn.ReadLine
A079 '1er block en dur
B=Mid(Sline,198,11) '3 ieme Block de donnée
C=Mid(Sline,218,5) '2 ieme Block de donnée
D=Mid(Sline,223,2) '4 ieme Block de donnée clef
E=Mid(Sline,225,12) '5 ieme Block de donnée ancien numéros
strIn = A
strIn = strIn & C
strIn = strIn & B
strIn = strIn & D
strIn = strIn & " " ' Pour mettre un espace
strIn = strIn & E
If B<>" " else if C<>" " else if D<>" " then
fileOut.WriteLine strIn
Loop
fileOut.Close
Set A = Nothing
Set B = Nothing
Set C = Nothing
Set D = Nothing
Set E = Nothing
Set fso = Nothing
Set objShell = Nothing
Set fileIn = Nothing
Set fileOut = Nothing
Set objShell =Nothing
Par exemple
If Not InStr(B & C & D, " ") > 0 Then
fileOut.WriteLine strIn
End If
Ou comme ça:
A = 18079 '1er block en dur
B = Mid(Sline,198,11) '3 ieme Block de donnée
C = Mid(Sline,218,5) '2 ieme Block de donnée
D = Mid(Sline,223,2) '4 ieme Block de donnée clef
E=Trim(Mid(Sline,225,12) '5 ieme Block de donnée ancien numéros
If Len(Trim(B)) > 0 And Len(Trim(C)) > 0 And Len(Trim(D)) > 0 Then
fileOut.WriteLine strIn
End If
Ps: Les lignes "Set A= Nothing" a "Set E = Nothing" ne servent à rien
Merci j'essaye cela dans 2 heures,
Mais la variable B doit avoir 11 espaces la C 5 espaces et la D 2
espaces.
J'était persuadé de libérer proprement les variables en faisant SET
A=Nothing
Je vous donne le résultat tout à l'heure.
Merci
Bonjour,
L'énoncé de ton problème n'est pas très clair ("et ou" en informatique c'est
un tantinet ambigü :-))
Soit :
- lorsqu'aucune des variables n'est remplie avec des blancs, je copie la
ligne
Soit :
- lorsqu'au moins une des trois variables n'est pas remplie avec de blancs,
je copie la ligne.
Soit :
- une autre solution peut-être ??
Première hypothèse, tu peux prendre la solution de Fabrice.
Deuxième hypothèse, tu prends la solution de Fabrice avec la modif suivante :
If (B<>" ") or (C<>" ") or (D<>" ")) then
Troisième hypothèse, tu reformules ta phrase, éventuellement en donnant des
exemples ?
Dans le message :,
---DGI972--- <gilles.dermigny@*NO SPAM* laposte.net> disait :jbongran a exprimé avec précision :---DGI972--- wrote:Bonjour,
Je sollicite quelqu'un pour me donner un petit coup de pouce ou un
coup de pied au c....
Voila mon Pb
Je lis un fichier BA.CTE en entrée et j'extrais des zones A , B , C,
D, E.
Je reconstitue avec mes zones une nouvelle chaine de caractère et je
l'écris dans un fichier de sortie BA.TXT.
Jusque la facile et cela fonctionne correctement, mais on m'a
demandé que si la zone B et ou C et ou D est vide (avec des
espaces) de ne pas recopier la ligne dans le fichier de sortie.
J'ai donc rajouté un test If B<>" " else if C<>" "
else if D<>" " j'écrie dans le fichier sinon je passe le tour.
Mais cela ne marche pas.
Voiçi les lignes de codes:
Option Explicit
Dim fso, objShell, A, B, C, D, E, fileIn, fileOut, Sline, StrIn
Set fso = CreateObject("Scripting.FileSystemObject")
Set objShell = CreateObject("WScript.Shell")
Set fileIn = fso.OpenTextFile("C:MARPROGRAMBA.CTE", 1, True)
Set fileOut = fso.OpenTextFile("C:MARPROGRAMBA.TXT", 2,
True)'fichier temporaire de sortie
Do While not fileIn.AtEndOfStream
SLine = fileIn.ReadLine
A079 '1er block en dur
B=Mid(Sline,198,11) '3 ieme Block de donnée
C=Mid(Sline,218,5) '2 ieme Block de donnée
D=Mid(Sline,223,2) '4 ieme Block de donnée clef
E=Mid(Sline,225,12) '5 ieme Block de donnée ancien numéros
strIn = A
strIn = strIn & C
strIn = strIn & B
strIn = strIn & D
strIn = strIn & " " ' Pour mettre un espace
strIn = strIn & E
If B<>" " else if C<>" " else if D<>" " then
fileOut.WriteLine strIn
Loop
fileOut.Close
Set A = Nothing
Set B = Nothing
Set C = Nothing
Set D = Nothing
Set E = Nothing
Set fso = Nothing
Set objShell = Nothing
Set fileIn = Nothing
Set fileOut = Nothing
Set objShell =Nothing
Par exemple
If Not InStr(B & C & D, " ") > 0 Then
fileOut.WriteLine strIn
End If
Ou comme ça:
A = 18079 '1er block en dur
B = Mid(Sline,198,11) '3 ieme Block de donnée
C = Mid(Sline,218,5) '2 ieme Block de donnée
D = Mid(Sline,223,2) '4 ieme Block de donnée clef
E=Trim(Mid(Sline,225,12) '5 ieme Block de donnée ancien numéros
If Len(Trim(B)) > 0 And Len(Trim(C)) > 0 And Len(Trim(D)) > 0 Then
fileOut.WriteLine strIn
End If
Ps: Les lignes "Set A= Nothing" a "Set E = Nothing" ne servent à rien
Merci j'essaye cela dans 2 heures,
Mais la variable B doit avoir 11 espaces la C 5 espaces et la D 2
espaces.
J'était persuadé de libérer proprement les variables en faisant SET
A=Nothing
Je vous donne le résultat tout à l'heure.
Merci
Bonjour,
L'énoncé de ton problème n'est pas très clair ("et ou" en informatique c'est
un tantinet ambigü :-))
Soit :
- lorsqu'aucune des variables n'est remplie avec des blancs, je copie la
ligne
Soit :
- lorsqu'au moins une des trois variables n'est pas remplie avec de blancs,
je copie la ligne.
Soit :
- une autre solution peut-être ??
Première hypothèse, tu peux prendre la solution de Fabrice.
Deuxième hypothèse, tu prends la solution de Fabrice avec la modif suivante :
If (B<>" ") or (C<>" ") or (D<>" ")) then
Troisième hypothèse, tu reformules ta phrase, éventuellement en donnant des
exemples ?