J'ai encore un pb pour sortir d'une condition:
Je lis un fichier en entrée pour le recopier dans un fichier en sortie.
Si une ligne commence par "100001" je dois faire un calcul de modulo 97
pour l'insérer en position 63 et recopier la ligne avec le cacul
Sinon je recopie toutes les autres lignes sans les modifier.
Simple non, mais voilà le calcul est recopié dans chaque ligne et je
m'en sort pas.
Merci je suis si près du but.
Option Explicit
Dim fso, objShell, CPTE, D, TEST, CLE, fileIn, fileOut, Sline, StrIn
Set fso = CreateObject("Scripting.FileSystemObject")
Set objShell = CreateObject("WScript.Shell")
Set fileIn = fso.OpenTextFile("C:\EDITION\DATA\EDGP", 1, True)
Set fileOut = fso.OpenTextFile("C:\EDITION\DATA\EDGPCLE", 2, True)
Do While Not fileIn.AtEndOfStream
SLine = fileIn.ReadLine
If Mid(SLine,1,6)="100001" then D=(62*Mid(18079&"0" &
Mid(Sline,72,4)&Mid(Sline,13,11),1,7)+34*Mid(18079&"0" &
Mid(Sline,72,4)&Mid(Sline,13,11),8,7)+3*Mid(18079&"0" &
Mid(Sline,72,4)&Mid(Sline,13,11),15,7))Mod 97
CLE=97-D
If CLE < 10 Then CLE="0" & CLE 'Pour fabriquer une clef sur 2
caractères'
StrIn=Mid(Sline,1,60)'Début de la line'
StrIn=StrIn & CLE 'Début de la ligne et la clef RIB'
StrIn=StrIn & Mid(Sline,63,18) 'Début de la ligne et la clef RIB
et le reste de la ligne
Sline=StrIn
fileOut.WriteLine SLine
Loop
fileOut.Close
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
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
Fred
"---DGI972---" <gilles.dermigny@*NOSPAM*laposte.net> a écrit dans le message de news:
Bonjour,
J'ai encore un pb pour sortir d'une condition: [...]
Option Explicit Dim fso, objShell, CPTE, D, TEST, CLE, fileIn, fileOut, Sline, StrIn Set fso = CreateObject("Scripting.FileSystemObject") Set objShell = CreateObject("WScript.Shell") Set fileIn = fso.OpenTextFile("C:EDITIONDATAEDGP", 1, True) Set fileOut = fso.OpenTextFile("C:EDITIONDATAEDGPCLE", 2, True)
Do While Not fileIn.AtEndOfStream SLine = fileIn.ReadLine If Mid(SLine,1,6)="100001" then D=(62*Mid(18079&"0" & Mid(Sline,72,4)&Mid(Sline,13,11),1,7)+34*Mid(18079&"0" & Mid(Sline,72,4)&Mid(Sline,13,11),8,7)+3*Mid(18079&"0" & Mid(Sline,72,4)&Mid(Sline,13,11),15,7))Mod 97
Lorsque tu écris ton If sur une ligne, la partie conditionnée par le test est uniquement ce qui suit sur la même ligne. Or, si j'ai bien compris, c'est toute la suite du traitement que tu veux conditionner. Donc, il faut écrire quelque chose du style : 8<----------------- If Mid(SLine,1,6)="100001" then D=(62*Mid(18079&"0" & Mid(Sline,72,4)&Mid(Sline,13,11),1,7)+34*Mid(18079&"0" & Mid(Sline,72,4)&Mid(Sline,13,11),8,7)+3*Mid(18079&"0" & Mid(Sline,72,4)&Mid(Sline,13,11),15,7))Mod 97 CLE-D ' 'etc ... ' SLine=StrIn Else 'facultatif 'si besoin (mais je ne crois pas ici) End If fileOut.WriteLine SLine 8<-----------------
-- Fred
"---DGI972---" <gilles.dermigny@*NOSPAM*laposte.net> a écrit dans le
message de news:mn.a39a7d5611667dd4.33554@NOSPAMlaposte.net...
Bonjour,
J'ai encore un pb pour sortir d'une condition:
[...]
Option Explicit
Dim fso, objShell, CPTE, D, TEST, CLE, fileIn, fileOut, Sline, StrIn
Set fso = CreateObject("Scripting.FileSystemObject")
Set objShell = CreateObject("WScript.Shell")
Set fileIn = fso.OpenTextFile("C:EDITIONDATAEDGP", 1, True)
Set fileOut = fso.OpenTextFile("C:EDITIONDATAEDGPCLE", 2, True)
Do While Not fileIn.AtEndOfStream
SLine = fileIn.ReadLine
If Mid(SLine,1,6)="100001" then D=(62*Mid(18079&"0" &
Mid(Sline,72,4)&Mid(Sline,13,11),1,7)+34*Mid(18079&"0" &
Mid(Sline,72,4)&Mid(Sline,13,11),8,7)+3*Mid(18079&"0" &
Mid(Sline,72,4)&Mid(Sline,13,11),15,7))Mod 97
Lorsque tu écris ton If sur une ligne, la partie conditionnée par le
test est uniquement ce qui suit sur la même ligne.
Or, si j'ai bien compris, c'est toute la suite du traitement que tu veux
conditionner.
Donc, il faut écrire quelque chose du style :
8<-----------------
If Mid(SLine,1,6)="100001" then
D=(62*Mid(18079&"0" &
Mid(Sline,72,4)&Mid(Sline,13,11),1,7)+34*Mid(18079&"0" &
Mid(Sline,72,4)&Mid(Sline,13,11),8,7)+3*Mid(18079&"0" &
Mid(Sline,72,4)&Mid(Sline,13,11),15,7))Mod 97
CLE-D
'
'etc ...
'
SLine=StrIn
Else 'facultatif
'si besoin (mais je ne crois pas ici)
End If
fileOut.WriteLine SLine
8<-----------------
"---DGI972---" <gilles.dermigny@*NOSPAM*laposte.net> a écrit dans le message de news:
Bonjour,
J'ai encore un pb pour sortir d'une condition: [...]
Option Explicit Dim fso, objShell, CPTE, D, TEST, CLE, fileIn, fileOut, Sline, StrIn Set fso = CreateObject("Scripting.FileSystemObject") Set objShell = CreateObject("WScript.Shell") Set fileIn = fso.OpenTextFile("C:EDITIONDATAEDGP", 1, True) Set fileOut = fso.OpenTextFile("C:EDITIONDATAEDGPCLE", 2, True)
Do While Not fileIn.AtEndOfStream SLine = fileIn.ReadLine If Mid(SLine,1,6)="100001" then D=(62*Mid(18079&"0" & Mid(Sline,72,4)&Mid(Sline,13,11),1,7)+34*Mid(18079&"0" & Mid(Sline,72,4)&Mid(Sline,13,11),8,7)+3*Mid(18079&"0" & Mid(Sline,72,4)&Mid(Sline,13,11),15,7))Mod 97
Lorsque tu écris ton If sur une ligne, la partie conditionnée par le test est uniquement ce qui suit sur la même ligne. Or, si j'ai bien compris, c'est toute la suite du traitement que tu veux conditionner. Donc, il faut écrire quelque chose du style : 8<----------------- If Mid(SLine,1,6)="100001" then D=(62*Mid(18079&"0" & Mid(Sline,72,4)&Mid(Sline,13,11),1,7)+34*Mid(18079&"0" & Mid(Sline,72,4)&Mid(Sline,13,11),8,7)+3*Mid(18079&"0" & Mid(Sline,72,4)&Mid(Sline,13,11),15,7))Mod 97 CLE-D ' 'etc ... ' SLine=StrIn Else 'facultatif 'si besoin (mais je ne crois pas ici) End If fileOut.WriteLine SLine 8<-----------------
-- Fred
---DGI972---
"---DGI972---" <gilles.dermigny@*NOSPAM*laposte.net> a écrit dans le message de news:
Bonjour,
J'ai encore un pb pour sortir d'une condition: [...] Option Explicit Dim fso, objShell, CPTE, D, TEST, CLE, fileIn, fileOut, Sline, StrIn Set fso = CreateObject("Scripting.FileSystemObject") Set objShell = CreateObject("WScript.Shell") Set fileIn = fso.OpenTextFile("C:EDITIONDATAEDGP", 1, True) Set fileOut = fso.OpenTextFile("C:EDITIONDATAEDGPCLE", 2, True)
Do While Not fileIn.AtEndOfStream SLine = fileIn.ReadLine If Mid(SLine,1,6)="100001" then D=(62*Mid(18079&"0" & Mid(Sline,72,4)&Mid(Sline,13,11),1,7)+34*Mid(18079&"0" & Mid(Sline,72,4)&Mid(Sline,13,11),8,7)+3*Mid(18079&"0" & Mid(Sline,72,4)&Mid(Sline,13,11),15,7))Mod 97
Lorsque tu écris ton If sur une ligne, la partie conditionnée par le test est uniquement ce qui suit sur la même ligne. Or, si j'ai bien compris, c'est toute la suite du traitement que tu veux conditionner. Donc, il faut écrire quelque chose du style : 8<----------------- If Mid(SLine,1,6)="100001" then D=(62*Mid(18079&"0" & Mid(Sline,72,4)&Mid(Sline,13,11),1,7)+34*Mid(18079&"0" & Mid(Sline,72,4)&Mid(Sline,13,11),8,7)+3*Mid(18079&"0" & Mid(Sline,72,4)&Mid(Sline,13,11),15,7))Mod 97 CLE-D ' 'etc ... ' SLine=StrIn Else 'facultatif 'si besoin (mais je ne crois pas ici) End If fileOut.WriteLine SLine 8<-----------------
C'est exactement cela
merci
-- Ceci est une signature automatique de MesNews. Site : http://www.mesnews.net
"---DGI972---" <gilles.dermigny@*NOSPAM*laposte.net> a écrit dans le
message de news:mn.a39a7d5611667dd4.33554@NOSPAMlaposte.net...
Bonjour,
J'ai encore un pb pour sortir d'une condition: [...]
Option Explicit
Dim fso, objShell, CPTE, D, TEST, CLE, fileIn, fileOut, Sline, StrIn
Set fso = CreateObject("Scripting.FileSystemObject")
Set objShell = CreateObject("WScript.Shell")
Set fileIn = fso.OpenTextFile("C:EDITIONDATAEDGP", 1, True)
Set fileOut = fso.OpenTextFile("C:EDITIONDATAEDGPCLE", 2, True)
Do While Not fileIn.AtEndOfStream
SLine = fileIn.ReadLine
If Mid(SLine,1,6)="100001" then D=(62*Mid(18079&"0" &
Mid(Sline,72,4)&Mid(Sline,13,11),1,7)+34*Mid(18079&"0" &
Mid(Sline,72,4)&Mid(Sline,13,11),8,7)+3*Mid(18079&"0" &
Mid(Sline,72,4)&Mid(Sline,13,11),15,7))Mod 97
Lorsque tu écris ton If sur une ligne, la partie conditionnée par le
test est uniquement ce qui suit sur la même ligne.
Or, si j'ai bien compris, c'est toute la suite du traitement que tu veux
conditionner.
Donc, il faut écrire quelque chose du style :
8<-----------------
If Mid(SLine,1,6)="100001" then
D=(62*Mid(18079&"0" &
Mid(Sline,72,4)&Mid(Sline,13,11),1,7)+34*Mid(18079&"0" &
Mid(Sline,72,4)&Mid(Sline,13,11),8,7)+3*Mid(18079&"0" &
Mid(Sline,72,4)&Mid(Sline,13,11),15,7))Mod 97
CLE-D
'
'etc ...
'
SLine=StrIn
Else 'facultatif
'si besoin (mais je ne crois pas ici)
End If
fileOut.WriteLine SLine
8<-----------------
C'est exactement cela
merci
--
Ceci est une signature automatique de MesNews.
Site : http://www.mesnews.net
"---DGI972---" <gilles.dermigny@*NOSPAM*laposte.net> a écrit dans le message de news:
Bonjour,
J'ai encore un pb pour sortir d'une condition: [...] Option Explicit Dim fso, objShell, CPTE, D, TEST, CLE, fileIn, fileOut, Sline, StrIn Set fso = CreateObject("Scripting.FileSystemObject") Set objShell = CreateObject("WScript.Shell") Set fileIn = fso.OpenTextFile("C:EDITIONDATAEDGP", 1, True) Set fileOut = fso.OpenTextFile("C:EDITIONDATAEDGPCLE", 2, True)
Do While Not fileIn.AtEndOfStream SLine = fileIn.ReadLine If Mid(SLine,1,6)="100001" then D=(62*Mid(18079&"0" & Mid(Sline,72,4)&Mid(Sline,13,11),1,7)+34*Mid(18079&"0" & Mid(Sline,72,4)&Mid(Sline,13,11),8,7)+3*Mid(18079&"0" & Mid(Sline,72,4)&Mid(Sline,13,11),15,7))Mod 97
Lorsque tu écris ton If sur une ligne, la partie conditionnée par le test est uniquement ce qui suit sur la même ligne. Or, si j'ai bien compris, c'est toute la suite du traitement que tu veux conditionner. Donc, il faut écrire quelque chose du style : 8<----------------- If Mid(SLine,1,6)="100001" then D=(62*Mid(18079&"0" & Mid(Sline,72,4)&Mid(Sline,13,11),1,7)+34*Mid(18079&"0" & Mid(Sline,72,4)&Mid(Sline,13,11),8,7)+3*Mid(18079&"0" & Mid(Sline,72,4)&Mid(Sline,13,11),15,7))Mod 97 CLE-D ' 'etc ... ' SLine=StrIn Else 'facultatif 'si besoin (mais je ne crois pas ici) End If fileOut.WriteLine SLine 8<-----------------
C'est exactement cela
merci
-- Ceci est une signature automatique de MesNews. Site : http://www.mesnews.net