Bonjour,
Je bute toujours sur des boucles et j'aurais souhaité un petit coup de
pouce:
Je dois fabriquer un fichier avec des fichiers existants:
Il y a une liste de référence:L_REFEICXXX.txt
Il y a une liste d'adresse Email:L_EMAIL.txt
Avec les 2 listes de fichier je dois créer le fichier de sortie:
MAIL:999_XXX.txt qui contient pour chaque référence L_REFEICXXX.txt
autand de ligne que d'adresse EMAIL contenu dans le fichier L_EMAIL.
Cela fonctionne a moitié c'est à dire le fichier est créé avec la liste
des Emails mais avec une seule réérence dans le fichier L_REFEICXXX.txt
Le LREF=L_REFEIC.Readline ne s'incrémente pas.
Merci d'avance
voici le code:
QUANT=Date()-DateSerial(Year(Date()),1,1)+1
if QUANT<100 then QUANT="0"&QUANT
DEBUT_166="<>0999999 99999999999"
L3_166="9999999999999999999999999999
"
FIN_166="<>09999999999999999999999999999999"
Set MAIL = fso.CreateTextFile("D:\999\999_"&QUANT&".txt", True, False)
Set L_REFEIC = fso.OpenTextFile ("D:\999\L_REFEIC"&QUANT&".txt", 1)
Set L_EMAIL = fso.OpenTextFile ("D:\999\L_EMAIL.txt", 1)
BREDMAIL.Writeline DEBUT_166
Do while Not L_REFEIC.AtEndOfStream
LREF=L_REFEIC.Readline
Do until L_EMAIL.AtEndOfStream
LE = L_EMAIL.Readline
BREDMAIL.WriteLine L1_166&LE&L2_166&LREF&L3_166 'fabrication de
la ligne L1_166+LE+L2_166+Lref+L3_166
loop
loop
MAIL.Writeline FIN_166
Set MAIL = Nothing
Set L_REFEIC = Nothing
Set L_EMAIL = Nothing
WScript.Echo "Fin du traitement MAIL999 du quantième : "&QUANT
WScript.Quit(0)
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
Michel Claveau
Bonjour !
En lisant uniquement, mais strictement, ton descriptif, on peut utiliser le batch suivant :
@echo off echo >999_XXX.txt for /F %%i in (L_REFEICXXX.txt) do (for /F %%j in (L_EMAIL.txt) do echo %%i %%j>>999_XXX.txt)
Mais, si ça répond au descriptif que tu as écris, cela m'étonnerais beaucoup que cela corresponde à ton besoin réel.
Je dois fabriquer un fichier avec des fichiers existants: Il y a une liste de référence:L_REFEICXXX.txt Il y a une liste d'adresse Email:L_EMAIL.txt Avec les 2 listes de fichier je dois créer le fichier de sortie: MAIL:999_XXX.txt qui contient pour chaque référence L_REFEICXXX.txt autand de ligne que d'adresse EMAIL contenu dans le fichier L_EMAIL.
-- @-salutations
Michel Claveau
Bonjour !
En lisant uniquement, mais strictement, ton descriptif, on peut
utiliser le batch suivant :
@echo off
echo >999_XXX.txt
for /F %%i in (L_REFEICXXX.txt) do (for /F %%j in (L_EMAIL.txt) do
echo %%i %%j>>999_XXX.txt)
Mais, si ça répond au descriptif que tu as écris, cela m'étonnerais
beaucoup que cela corresponde à ton besoin réel.
Je dois fabriquer un fichier avec des fichiers existants:
Il y a une liste de référence:L_REFEICXXX.txt
Il y a une liste d'adresse Email:L_EMAIL.txt
Avec les 2 listes de fichier je dois créer le fichier de sortie:
MAIL:999_XXX.txt qui contient pour chaque référence L_REFEICXXX.txt
autand de ligne que d'adresse EMAIL contenu dans le fichier L_EMAIL.
En lisant uniquement, mais strictement, ton descriptif, on peut utiliser le batch suivant :
@echo off echo >999_XXX.txt for /F %%i in (L_REFEICXXX.txt) do (for /F %%j in (L_EMAIL.txt) do echo %%i %%j>>999_XXX.txt)
Mais, si ça répond au descriptif que tu as écris, cela m'étonnerais beaucoup que cela corresponde à ton besoin réel.
Je dois fabriquer un fichier avec des fichiers existants: Il y a une liste de référence:L_REFEICXXX.txt Il y a une liste d'adresse Email:L_EMAIL.txt Avec les 2 listes de fichier je dois créer le fichier de sortie: MAIL:999_XXX.txt qui contient pour chaque référence L_REFEICXXX.txt autand de ligne que d'adresse EMAIL contenu dans le fichier L_EMAIL.
-- @-salutations
Michel Claveau
Michel Claveau
Re
Je m'excuse, il manquait un point :
@echo off echo.>999_XXX.txt for /F %%i in (L_REFEICXXX.txt) do (for /F %%j in (L_EMAIL.txt) do echo %%i %%j>>999_XXX.txt)
Mais, encore mieux, on pourrait mettre, en seconde ligne : del 999_XXX.txt
-- @-salutations
Michel Claveau
Re
Je m'excuse, il manquait un point :
@echo off
echo.>999_XXX.txt
for /F %%i in (L_REFEICXXX.txt) do (for /F %%j in (L_EMAIL.txt) do
echo %%i %%j>>999_XXX.txt)
Mais, encore mieux, on pourrait mettre, en seconde ligne :
del 999_XXX.txt
@echo off echo.>999_XXX.txt for /F %%i in (L_REFEICXXX.txt) do (for /F %%j in (L_EMAIL.txt) do echo %%i %%j>>999_XXX.txt)
Mais, encore mieux, on pourrait mettre, en seconde ligne : del 999_XXX.txt
-- @-salutations
Michel Claveau
---DGI972---
Re
Je m'excuse, il manquait un point :
@echo off echo.>999_XXX.txt for /F %%i in (L_REFEICXXX.txt) do (for /F %%j in (L_EMAIL.txt) do echo %%i %%j>>999_XXX.txt)
Mais, encore mieux, on pourrait mettre, en seconde ligne : del 999_XXX.txt
Les XXX représente le Quantième du Jour par ex: 230. Je vais expliquer un peu plus.
J'un fichier avec des adresses MAIL:
j'ai un fichier de références 111111 222222
j'essaye de fabriquer un fichier de sortie A chaque référence il faut fabriquer une ligne avec toutes les adresses Emails.Ma boucle fonctionne qu'une seule fois pour la première référence seulement.Je n'ai pas la ligne avec les 222222.
BREDMAIL.Writeline DEBUT_166 Do while Not L_REFEIC.AtEndOfStream LREF=L_REFEIC.Readline Do until L_EMAIL.AtEndOfStream LE = L_EMAIL.Readline BREDMAIL.WriteLine L1_166&LE&L2_166&LREF&L3_166 'fabrication de la ligne L1_166+LE+L2_166+Lref+L3_166 loop loop MAIL.Writeline FIN_166
@echo off
echo.>999_XXX.txt
for /F %%i in (L_REFEICXXX.txt) do (for /F %%j in (L_EMAIL.txt) do echo
%%i %%j>>999_XXX.txt)
Mais, encore mieux, on pourrait mettre, en seconde ligne :
del 999_XXX.txt
Les XXX représente le Quantième du Jour par ex: 230.
Je vais expliquer un peu plus.
J'un fichier avec des adresses MAIL:
toto@free.fr
tatata@wanadoo.fr
tontonotn@aol.fr
j'ai un fichier de références
111111
222222
j'essaye de fabriquer un fichier de sortie
A chaque référence il faut fabriquer une ligne avec toutes les adresses
Emails.Ma boucle fonctionne qu'une seule fois pour la première
référence seulement.Je n'ai pas la ligne avec les 222222.
BREDMAIL.Writeline DEBUT_166
Do while Not L_REFEIC.AtEndOfStream
LREF=L_REFEIC.Readline
Do until L_EMAIL.AtEndOfStream
LE = L_EMAIL.Readline
BREDMAIL.WriteLine L1_166&LE&L2_166&LREF&L3_166 'fabrication de
la ligne L1_166+LE+L2_166+Lref+L3_166
loop
loop
MAIL.Writeline FIN_166
@echo off echo.>999_XXX.txt for /F %%i in (L_REFEICXXX.txt) do (for /F %%j in (L_EMAIL.txt) do echo %%i %%j>>999_XXX.txt)
Mais, encore mieux, on pourrait mettre, en seconde ligne : del 999_XXX.txt
Les XXX représente le Quantième du Jour par ex: 230. Je vais expliquer un peu plus.
J'un fichier avec des adresses MAIL:
j'ai un fichier de références 111111 222222
j'essaye de fabriquer un fichier de sortie A chaque référence il faut fabriquer une ligne avec toutes les adresses Emails.Ma boucle fonctionne qu'une seule fois pour la première référence seulement.Je n'ai pas la ligne avec les 222222.
BREDMAIL.Writeline DEBUT_166 Do while Not L_REFEIC.AtEndOfStream LREF=L_REFEIC.Readline Do until L_EMAIL.AtEndOfStream LE = L_EMAIL.Readline BREDMAIL.WriteLine L1_166&LE&L2_166&LREF&L3_166 'fabrication de la ligne L1_166+LE+L2_166+Lref+L3_166 loop loop MAIL.Writeline FIN_166
"---DGI972---" <gilles.dermigny@*NO SPAM* laposte.net> a écrit dans le message de news:
Bonjour,
Je me permet de m'immiscer dans cette conversation.
| Les XXX représente le Quantième du Jour par ex: 230. | Je vais expliquer un peu plus. | | J'un fichier avec des adresses MAIL: | | | | | j'ai un fichier de références | 111111 | 222222 | | j'essaye de fabriquer un fichier de sortie | A chaque référence il faut fabriquer une ligne avec toutes les | adresses Emails.Ma boucle fonctionne qu'une seule fois pour la | première référence seulement.Je n'ai pas la ligne avec les 222222. | | BREDMAIL.Writeline DEBUT_166 | Do while Not L_REFEIC.AtEndOfStream | LREF=L_REFEIC.Readline | Do until L_EMAIL.AtEndOfStream | LE = L_EMAIL.Readline | BREDMAIL.WriteLine L1_166&LE&L2_166&LREF&L3_166 'fabrication | de la ligne L1_166+LE+L2_166+Lref+L3_166 | loop | loop | MAIL.Writeline FIN_166 | | Aidez moi SVP j'y vois plus rien | | ex de fichier de sortie | | <>0999999 99999999999 | <>0999 111111 09999 0999 999 | <>0999 111111 09999 0999 999 | <>0999 111111 09999 0999 999 | <>0999 222222 09999 0999 999 | <>0999 222222 09999 0999 999 | <>0999 222222 09999 0999 999 | <>09999999999999999999999999999999
Le fichier L_EMAIL.txt doit obligatoirement être réouvert à chaque itération afin de permettre la relecture de tous les enregistrements qu'il contient. Ceci permet de positionner le pointeur de fichier sur le premier enregistrement (rewind).
Set fso = CreateObject("Scripting.FileSystemObject") Set BREDMAIL = fso.CreateTextFile("D:999999_"&QUANT&".txt", True, False) Set L_REFEIC = fso.OpenTextFile ("D:999L_REFEIC"&QUANT&".txt", 1) BREDMAIL.Writeline DEBUT_166 Do while Not L_REFEIC.AtEndOfStream LREF=L_REFEIC.Readline Set L_EMAIL = fso.OpenTextFile ("D:999L_EMAIL.txt", 1) Do until L_EMAIL.AtEndOfStream LE = L_EMAIL.Readline BREDMAIL.WriteLine L1_166&LE&L2_166&LREF&L3_166 Loop L_EMAIL.Close Loop BREDMAIL.Writeline FIN_166
Je m'éclipse en silence monastique ;-)
-- Gilles LAURENT Me contacter : http://cerbermail.com/?zoTY7ZkLcD
"---DGI972---" <gilles.dermigny@*NO SPAM* laposte.net> a écrit dans le
message de news:mn.91a77d68d490997c.55474@NOSPAMlaposte.net
Bonjour,
Je me permet de m'immiscer dans cette conversation.
| Les XXX représente le Quantième du Jour par ex: 230.
| Je vais expliquer un peu plus.
|
| J'un fichier avec des adresses MAIL:
| toto@free.fr
| tatata@wanadoo.fr
| tontonotn@aol.fr
|
| j'ai un fichier de références
| 111111
| 222222
|
| j'essaye de fabriquer un fichier de sortie
| A chaque référence il faut fabriquer une ligne avec toutes les
| adresses Emails.Ma boucle fonctionne qu'une seule fois pour la
| première référence seulement.Je n'ai pas la ligne avec les 222222.
|
| BREDMAIL.Writeline DEBUT_166
| Do while Not L_REFEIC.AtEndOfStream
| LREF=L_REFEIC.Readline
| Do until L_EMAIL.AtEndOfStream
| LE = L_EMAIL.Readline
| BREDMAIL.WriteLine L1_166&LE&L2_166&LREF&L3_166 'fabrication
| de la ligne L1_166+LE+L2_166+Lref+L3_166
| loop
| loop
| MAIL.Writeline FIN_166
|
| Aidez moi SVP j'y vois plus rien
|
| ex de fichier de sortie
|
| <>0999999 99999999999
| <>0999 111111 09999 toto@free.fr 0999 999
| <>0999 111111 09999 tatata@wanadoo.fr 0999 999
| <>0999 111111 09999 tontonotn@aol.fr 0999 999
| <>0999 222222 09999 toto@free.fr 0999 999
| <>0999 222222 09999 tatata@wanadoo.fr 0999 999
| <>0999 222222 09999 tontonotn@aol.fr 0999 999
| <>09999999999999999999999999999999
Le fichier L_EMAIL.txt doit obligatoirement être réouvert à chaque
itération afin de permettre la relecture de tous les enregistrements
qu'il contient. Ceci permet de positionner le pointeur de fichier sur le
premier enregistrement (rewind).
Set fso = CreateObject("Scripting.FileSystemObject")
Set BREDMAIL = fso.CreateTextFile("D:999999_"&QUANT&".txt", True,
False)
Set L_REFEIC = fso.OpenTextFile ("D:999L_REFEIC"&QUANT&".txt", 1)
BREDMAIL.Writeline DEBUT_166
Do while Not L_REFEIC.AtEndOfStream
LREF=L_REFEIC.Readline
Set L_EMAIL = fso.OpenTextFile ("D:999L_EMAIL.txt", 1)
Do until L_EMAIL.AtEndOfStream
LE = L_EMAIL.Readline
BREDMAIL.WriteLine L1_166&LE&L2_166&LREF&L3_166
Loop
L_EMAIL.Close
Loop
BREDMAIL.Writeline FIN_166
Je m'éclipse en silence monastique ;-)
--
Gilles LAURENT
Me contacter : http://cerbermail.com/?zoTY7ZkLcD
"---DGI972---" <gilles.dermigny@*NO SPAM* laposte.net> a écrit dans le message de news:
Bonjour,
Je me permet de m'immiscer dans cette conversation.
| Les XXX représente le Quantième du Jour par ex: 230. | Je vais expliquer un peu plus. | | J'un fichier avec des adresses MAIL: | | | | | j'ai un fichier de références | 111111 | 222222 | | j'essaye de fabriquer un fichier de sortie | A chaque référence il faut fabriquer une ligne avec toutes les | adresses Emails.Ma boucle fonctionne qu'une seule fois pour la | première référence seulement.Je n'ai pas la ligne avec les 222222. | | BREDMAIL.Writeline DEBUT_166 | Do while Not L_REFEIC.AtEndOfStream | LREF=L_REFEIC.Readline | Do until L_EMAIL.AtEndOfStream | LE = L_EMAIL.Readline | BREDMAIL.WriteLine L1_166&LE&L2_166&LREF&L3_166 'fabrication | de la ligne L1_166+LE+L2_166+Lref+L3_166 | loop | loop | MAIL.Writeline FIN_166 | | Aidez moi SVP j'y vois plus rien | | ex de fichier de sortie | | <>0999999 99999999999 | <>0999 111111 09999 0999 999 | <>0999 111111 09999 0999 999 | <>0999 111111 09999 0999 999 | <>0999 222222 09999 0999 999 | <>0999 222222 09999 0999 999 | <>0999 222222 09999 0999 999 | <>09999999999999999999999999999999
Le fichier L_EMAIL.txt doit obligatoirement être réouvert à chaque itération afin de permettre la relecture de tous les enregistrements qu'il contient. Ceci permet de positionner le pointeur de fichier sur le premier enregistrement (rewind).
Set fso = CreateObject("Scripting.FileSystemObject") Set BREDMAIL = fso.CreateTextFile("D:999999_"&QUANT&".txt", True, False) Set L_REFEIC = fso.OpenTextFile ("D:999L_REFEIC"&QUANT&".txt", 1) BREDMAIL.Writeline DEBUT_166 Do while Not L_REFEIC.AtEndOfStream LREF=L_REFEIC.Readline Set L_EMAIL = fso.OpenTextFile ("D:999L_EMAIL.txt", 1) Do until L_EMAIL.AtEndOfStream LE = L_EMAIL.Readline BREDMAIL.WriteLine L1_166&LE&L2_166&LREF&L3_166 Loop L_EMAIL.Close Loop BREDMAIL.Writeline FIN_166
Je m'éclipse en silence monastique ;-)
-- Gilles LAURENT Me contacter : http://cerbermail.com/?zoTY7ZkLcD
---DGI972---
Gilles LAURENT a utilisé son clavier pour écrire :
"---DGI972---" <gilles.dermigny@*NO SPAM* laposte.net> a écrit dans le message de news:
Bonjour,
Je me permet de m'immiscer dans cette conversation.
Les XXX représente le Quantième du Jour par ex: 230. Je vais expliquer un peu plus.
J'un fichier avec des adresses MAIL:
j'ai un fichier de références 111111 222222
j'essaye de fabriquer un fichier de sortie A chaque référence il faut fabriquer une ligne avec toutes les adresses Emails.Ma boucle fonctionne qu'une seule fois pour la première référence seulement.Je n'ai pas la ligne avec les 222222.
BREDMAIL.Writeline DEBUT_166 Do while Not L_REFEIC.AtEndOfStream LREF=L_REFEIC.Readline Do until L_EMAIL.AtEndOfStream LE = L_EMAIL.Readline BREDMAIL.WriteLine L1_166&LE&L2_166&LREF&L3_166 'fabrication de la ligne L1_166+LE+L2_166+Lref+L3_166 loop loop MAIL.Writeline FIN_166
Le fichier L_EMAIL.txt doit obligatoirement être réouvert à chaque itération afin de permettre la relecture de tous les enregistrements qu'il contient. Ceci permet de positionner le pointeur de fichier sur le premier enregistrement (rewind).
Set fso = CreateObject("Scripting.FileSystemObject") Set BREDMAIL = fso.CreateTextFile("D:999999_"&QUANT&".txt", True, False) Set L_REFEIC = fso.OpenTextFile ("D:999L_REFEIC"&QUANT&".txt", 1) BREDMAIL.Writeline DEBUT_166 Do while Not L_REFEIC.AtEndOfStream LREF=L_REFEIC.Readline Set L_EMAIL = fso.OpenTextFile ("D:999L_EMAIL.txt", 1) Do until L_EMAIL.AtEndOfStream LE = L_EMAIL.Readline BREDMAIL.WriteLine L1_166&LE&L2_166&LREF&L3_166 Loop L_EMAIL.Close Loop BREDMAIL.Writeline FIN_166
Je m'éclipse en silence monastique ;-)
Des silences comme cela j'en redemande. Testé cela fonctionne et en plus j'ai compris.
Merci merci merci
Gilles LAURENT a utilisé son clavier pour écrire :
"---DGI972---" <gilles.dermigny@*NO SPAM* laposte.net> a écrit dans le
message de news:mn.91a77d68d490997c.55474@NOSPAMlaposte.net
Bonjour,
Je me permet de m'immiscer dans cette conversation.
Les XXX représente le Quantième du Jour par ex: 230.
Je vais expliquer un peu plus.
J'un fichier avec des adresses MAIL:
toto@free.fr
tatata@wanadoo.fr
tontonotn@aol.fr
j'ai un fichier de références
111111
222222
j'essaye de fabriquer un fichier de sortie
A chaque référence il faut fabriquer une ligne avec toutes les
adresses Emails.Ma boucle fonctionne qu'une seule fois pour la
première référence seulement.Je n'ai pas la ligne avec les 222222.
BREDMAIL.Writeline DEBUT_166
Do while Not L_REFEIC.AtEndOfStream
LREF=L_REFEIC.Readline
Do until L_EMAIL.AtEndOfStream
LE = L_EMAIL.Readline
BREDMAIL.WriteLine L1_166&LE&L2_166&LREF&L3_166 'fabrication
de la ligne L1_166+LE+L2_166+Lref+L3_166
loop
loop
MAIL.Writeline FIN_166
Le fichier L_EMAIL.txt doit obligatoirement être réouvert à chaque
itération afin de permettre la relecture de tous les enregistrements
qu'il contient. Ceci permet de positionner le pointeur de fichier sur le
premier enregistrement (rewind).
Set fso = CreateObject("Scripting.FileSystemObject")
Set BREDMAIL = fso.CreateTextFile("D:999999_"&QUANT&".txt", True,
False)
Set L_REFEIC = fso.OpenTextFile ("D:999L_REFEIC"&QUANT&".txt", 1)
BREDMAIL.Writeline DEBUT_166
Do while Not L_REFEIC.AtEndOfStream
LREF=L_REFEIC.Readline
Set L_EMAIL = fso.OpenTextFile ("D:999L_EMAIL.txt", 1)
Do until L_EMAIL.AtEndOfStream
LE = L_EMAIL.Readline
BREDMAIL.WriteLine L1_166&LE&L2_166&LREF&L3_166
Loop
L_EMAIL.Close
Loop
BREDMAIL.Writeline FIN_166
Je m'éclipse en silence monastique ;-)
Des silences comme cela j'en redemande.
Testé cela fonctionne et en plus j'ai compris.
Gilles LAURENT a utilisé son clavier pour écrire :
"---DGI972---" <gilles.dermigny@*NO SPAM* laposte.net> a écrit dans le message de news:
Bonjour,
Je me permet de m'immiscer dans cette conversation.
Les XXX représente le Quantième du Jour par ex: 230. Je vais expliquer un peu plus.
J'un fichier avec des adresses MAIL:
j'ai un fichier de références 111111 222222
j'essaye de fabriquer un fichier de sortie A chaque référence il faut fabriquer une ligne avec toutes les adresses Emails.Ma boucle fonctionne qu'une seule fois pour la première référence seulement.Je n'ai pas la ligne avec les 222222.
BREDMAIL.Writeline DEBUT_166 Do while Not L_REFEIC.AtEndOfStream LREF=L_REFEIC.Readline Do until L_EMAIL.AtEndOfStream LE = L_EMAIL.Readline BREDMAIL.WriteLine L1_166&LE&L2_166&LREF&L3_166 'fabrication de la ligne L1_166+LE+L2_166+Lref+L3_166 loop loop MAIL.Writeline FIN_166
Le fichier L_EMAIL.txt doit obligatoirement être réouvert à chaque itération afin de permettre la relecture de tous les enregistrements qu'il contient. Ceci permet de positionner le pointeur de fichier sur le premier enregistrement (rewind).
Set fso = CreateObject("Scripting.FileSystemObject") Set BREDMAIL = fso.CreateTextFile("D:999999_"&QUANT&".txt", True, False) Set L_REFEIC = fso.OpenTextFile ("D:999L_REFEIC"&QUANT&".txt", 1) BREDMAIL.Writeline DEBUT_166 Do while Not L_REFEIC.AtEndOfStream LREF=L_REFEIC.Readline Set L_EMAIL = fso.OpenTextFile ("D:999L_EMAIL.txt", 1) Do until L_EMAIL.AtEndOfStream LE = L_EMAIL.Readline BREDMAIL.WriteLine L1_166&LE&L2_166&LREF&L3_166 Loop L_EMAIL.Close Loop BREDMAIL.Writeline FIN_166
Je m'éclipse en silence monastique ;-)
Des silences comme cela j'en redemande. Testé cela fonctionne et en plus j'ai compris.
Merci merci merci
---DGI972---
Il se trouve que ---DGI972--- a formulé :
Gilles LAURENT a utilisé son clavier pour écrire :
"---DGI972---" <gilles.dermigny@*NO SPAM* laposte.net> a écrit dans le message de news:
Bonjour,
Je me permet de m'immiscer dans cette conversation.
Les XXX représente le Quantième du Jour par ex: 230. Je vais expliquer un peu plus.
J'un fichier avec des adresses MAIL:
j'ai un fichier de références 111111 222222
j'essaye de fabriquer un fichier de sortie A chaque référence il faut fabriquer une ligne avec toutes les adresses Emails.Ma boucle fonctionne qu'une seule fois pour la première référence seulement.Je n'ai pas la ligne avec les 222222.
BREDMAIL.Writeline DEBUT_166 Do while Not L_REFEIC.AtEndOfStream LREF=L_REFEIC.Readline Do until L_EMAIL.AtEndOfStream LE = L_EMAIL.Readline BREDMAIL.WriteLine L1_166&LE&L2_166&LREF&L3_166 'fabrication de la ligne L1_166+LE+L2_166+Lref+L3_166 loop loop MAIL.Writeline FIN_166
Le fichier L_EMAIL.txt doit obligatoirement être réouvert à chaque itération afin de permettre la relecture de tous les enregistrements qu'il contient. Ceci permet de positionner le pointeur de fichier sur le premier enregistrement (rewind).
Set fso = CreateObject("Scripting.FileSystemObject") Set BREDMAIL = fso.CreateTextFile("D:999999_"&QUANT&".txt", True, False) Set L_REFEIC = fso.OpenTextFile ("D:999L_REFEIC"&QUANT&".txt", 1) BREDMAIL.Writeline DEBUT_166 Do while Not L_REFEIC.AtEndOfStream LREF=L_REFEIC.Readline Set L_EMAIL = fso.OpenTextFile ("D:999L_EMAIL.txt", 1) Do until L_EMAIL.AtEndOfStream LE = L_EMAIL.Readline BREDMAIL.WriteLine L1_166&LE&L2_166&LREF&L3_166 Loop L_EMAIL.Close Loop BREDMAIL.Writeline FIN_166
Je m'éclipse en silence monastique ;-)
Des silences comme cela j'en redemande. Testé cela fonctionne et en plus j'ai compris.
Merci merci merci
Je remets cela, J'ai uune boucle du même style mais avec une connection ODBC et je suis de nouveau perdu.
OdbcDSN = "DSN=DNC;UID=sa;PWD=" Set connect = CreateObject("ADODB.Connection") Set fso = CreateObject("Scripting.FileSystemObject")
connect.Open OdbcDSN Set L_OPEEIC = fso.CreateTextFile("D:BREMAIL999L_OPEEIC"&QUANT&".txt", True, False) Set L_COMPTE = fso.OpenTextFile ("D:BREMAIL999L_COMPTE.txt", 1)
Do until L_COMPTE.AtEndOfStream LCOMPTE = L_COMPTE.Readline If LCOMPTE <>"" then sql="select* from chq where val4 ='"&LCOMPTE&"' and val5 >='000000500000' and val8 ='"&Date_T&"' and (val7 like 'BRED %') and val1 ='C' and val11 ='R'"
Set resultSet = connect.Execute(sql) Do until resultSet.eof LOPEEIC=resultSet.fields("val6").Value If LOPEEIC<>" " then L_OPEEIC.WriteLine LOPEEIC 'si EIC vide ne pas recopier la ligne resultSet.MoveNext Loop L_COMPTE.Close Loop
Set L_COMPTE = Nothing Set L_OPEEIC = Nothing
Variable objet non défini dans la ligne au début (Do): Do until L_COMPTE.AtEndOfStream
puis Variable objet non défini dans la ligne If LOPEEIC<>" " then L_OPEEIC.WriteLine LOPEEIC avec la variable L_OPEEIC. ?? DGI972
Il se trouve que ---DGI972--- a formulé :
Gilles LAURENT a utilisé son clavier pour écrire :
"---DGI972---" <gilles.dermigny@*NO SPAM* laposte.net> a écrit dans le
message de news:mn.91a77d68d490997c.55474@NOSPAMlaposte.net
Bonjour,
Je me permet de m'immiscer dans cette conversation.
Les XXX représente le Quantième du Jour par ex: 230.
Je vais expliquer un peu plus.
J'un fichier avec des adresses MAIL:
toto@free.fr
tatata@wanadoo.fr
tontonotn@aol.fr
j'ai un fichier de références
111111
222222
j'essaye de fabriquer un fichier de sortie
A chaque référence il faut fabriquer une ligne avec toutes les
adresses Emails.Ma boucle fonctionne qu'une seule fois pour la
première référence seulement.Je n'ai pas la ligne avec les 222222.
BREDMAIL.Writeline DEBUT_166
Do while Not L_REFEIC.AtEndOfStream
LREF=L_REFEIC.Readline
Do until L_EMAIL.AtEndOfStream
LE = L_EMAIL.Readline
BREDMAIL.WriteLine L1_166&LE&L2_166&LREF&L3_166 'fabrication
de la ligne L1_166+LE+L2_166+Lref+L3_166
loop
loop
MAIL.Writeline FIN_166
Le fichier L_EMAIL.txt doit obligatoirement être réouvert à chaque
itération afin de permettre la relecture de tous les enregistrements
qu'il contient. Ceci permet de positionner le pointeur de fichier sur le
premier enregistrement (rewind).
Set fso = CreateObject("Scripting.FileSystemObject")
Set BREDMAIL = fso.CreateTextFile("D:999999_"&QUANT&".txt", True,
False)
Set L_REFEIC = fso.OpenTextFile ("D:999L_REFEIC"&QUANT&".txt", 1)
BREDMAIL.Writeline DEBUT_166
Do while Not L_REFEIC.AtEndOfStream
LREF=L_REFEIC.Readline
Set L_EMAIL = fso.OpenTextFile ("D:999L_EMAIL.txt", 1)
Do until L_EMAIL.AtEndOfStream
LE = L_EMAIL.Readline
BREDMAIL.WriteLine L1_166&LE&L2_166&LREF&L3_166
Loop
L_EMAIL.Close
Loop
BREDMAIL.Writeline FIN_166
Je m'éclipse en silence monastique ;-)
Des silences comme cela j'en redemande.
Testé cela fonctionne et en plus j'ai compris.
Merci merci merci
Je remets cela,
J'ai uune boucle du même style mais avec une connection ODBC et je suis
de nouveau perdu.
OdbcDSN = "DSN=DNC;UID=sa;PWD="
Set connect = CreateObject("ADODB.Connection")
Set fso = CreateObject("Scripting.FileSystemObject")
connect.Open OdbcDSN
Set L_OPEEIC =
fso.CreateTextFile("D:BREMAIL999L_OPEEIC"&QUANT&".txt", True, False)
Set L_COMPTE = fso.OpenTextFile ("D:BREMAIL999L_COMPTE.txt", 1)
Do until L_COMPTE.AtEndOfStream
LCOMPTE = L_COMPTE.Readline
If LCOMPTE <>"" then sql="select* from chq where val4
='"&LCOMPTE&"' and val5 >='000000500000' and val8 ='"&Date_T&"' and
(val7 like 'BRED %') and val1 ='C' and val11 ='R'"
Set resultSet = connect.Execute(sql)
Do until resultSet.eof
LOPEEIC=resultSet.fields("val6").Value
If LOPEEIC<>" " then
L_OPEEIC.WriteLine LOPEEIC 'si EIC vide ne pas recopier la ligne
resultSet.MoveNext
Loop
L_COMPTE.Close
Loop
Set L_COMPTE = Nothing
Set L_OPEEIC = Nothing
Variable objet non défini dans la ligne au début (Do):
Do until L_COMPTE.AtEndOfStream
puis Variable objet non défini dans la ligne
If LOPEEIC<>" " then L_OPEEIC.WriteLine LOPEEIC
avec la variable L_OPEEIC.
??
DGI972
Gilles LAURENT a utilisé son clavier pour écrire :
"---DGI972---" <gilles.dermigny@*NO SPAM* laposte.net> a écrit dans le message de news:
Bonjour,
Je me permet de m'immiscer dans cette conversation.
Les XXX représente le Quantième du Jour par ex: 230. Je vais expliquer un peu plus.
J'un fichier avec des adresses MAIL:
j'ai un fichier de références 111111 222222
j'essaye de fabriquer un fichier de sortie A chaque référence il faut fabriquer une ligne avec toutes les adresses Emails.Ma boucle fonctionne qu'une seule fois pour la première référence seulement.Je n'ai pas la ligne avec les 222222.
BREDMAIL.Writeline DEBUT_166 Do while Not L_REFEIC.AtEndOfStream LREF=L_REFEIC.Readline Do until L_EMAIL.AtEndOfStream LE = L_EMAIL.Readline BREDMAIL.WriteLine L1_166&LE&L2_166&LREF&L3_166 'fabrication de la ligne L1_166+LE+L2_166+Lref+L3_166 loop loop MAIL.Writeline FIN_166
Le fichier L_EMAIL.txt doit obligatoirement être réouvert à chaque itération afin de permettre la relecture de tous les enregistrements qu'il contient. Ceci permet de positionner le pointeur de fichier sur le premier enregistrement (rewind).
Set fso = CreateObject("Scripting.FileSystemObject") Set BREDMAIL = fso.CreateTextFile("D:999999_"&QUANT&".txt", True, False) Set L_REFEIC = fso.OpenTextFile ("D:999L_REFEIC"&QUANT&".txt", 1) BREDMAIL.Writeline DEBUT_166 Do while Not L_REFEIC.AtEndOfStream LREF=L_REFEIC.Readline Set L_EMAIL = fso.OpenTextFile ("D:999L_EMAIL.txt", 1) Do until L_EMAIL.AtEndOfStream LE = L_EMAIL.Readline BREDMAIL.WriteLine L1_166&LE&L2_166&LREF&L3_166 Loop L_EMAIL.Close Loop BREDMAIL.Writeline FIN_166
Je m'éclipse en silence monastique ;-)
Des silences comme cela j'en redemande. Testé cela fonctionne et en plus j'ai compris.
Merci merci merci
Je remets cela, J'ai uune boucle du même style mais avec une connection ODBC et je suis de nouveau perdu.
OdbcDSN = "DSN=DNC;UID=sa;PWD=" Set connect = CreateObject("ADODB.Connection") Set fso = CreateObject("Scripting.FileSystemObject")
connect.Open OdbcDSN Set L_OPEEIC = fso.CreateTextFile("D:BREMAIL999L_OPEEIC"&QUANT&".txt", True, False) Set L_COMPTE = fso.OpenTextFile ("D:BREMAIL999L_COMPTE.txt", 1)
Do until L_COMPTE.AtEndOfStream LCOMPTE = L_COMPTE.Readline If LCOMPTE <>"" then sql="select* from chq where val4 ='"&LCOMPTE&"' and val5 >='000000500000' and val8 ='"&Date_T&"' and (val7 like 'BRED %') and val1 ='C' and val11 ='R'"
Set resultSet = connect.Execute(sql) Do until resultSet.eof LOPEEIC=resultSet.fields("val6").Value If LOPEEIC<>" " then L_OPEEIC.WriteLine LOPEEIC 'si EIC vide ne pas recopier la ligne resultSet.MoveNext Loop L_COMPTE.Close Loop
Set L_COMPTE = Nothing Set L_OPEEIC = Nothing
Variable objet non défini dans la ligne au début (Do): Do until L_COMPTE.AtEndOfStream
puis Variable objet non défini dans la ligne If LOPEEIC<>" " then L_OPEEIC.WriteLine LOPEEIC avec la variable L_OPEEIC. ?? DGI972
Gilles LAURENT
"---DGI972---" <gilles.dermigny@*NO SPAM*laposte.net> a écrit dans le message de news:
Bonjour,
| Je remets cela, | J'ai uune boucle du même style mais avec une connection ODBC et je | suis de nouveau perdu.
[...]
| Set L_COMPTE = fso.OpenTextFile ("D:BREMAIL999L_COMPTE.txt", 1) | | Do until L_COMPTE.AtEndOfStream | Do until resultSet.eof | Loop | L_COMPTE.Close | Loop | | Set L_COMPTE = Nothing | Set L_OPEEIC = Nothing |
La commande de fermeture du fichier L_COMPTE.Close doit se situer à l'extérieur de la première boucle do .. loop sinon vous fermez le fichier à la fin de la première itération. Donc : do until L_COMPTE do until resultSet loop loop L_COMPTE.Close
-- Gilles LAURENT Me contacter : http://cerbermail.com/?zoTY7ZkLcD
"---DGI972---" <gilles.dermigny@*NO SPAM*laposte.net> a écrit dans le
message de news:mn.e41b7d68857971ba.33554@NOSPAMlaposte.net
Bonjour,
| Je remets cela,
| J'ai uune boucle du même style mais avec une connection ODBC et je
| suis de nouveau perdu.
[...]
| Set L_COMPTE = fso.OpenTextFile ("D:BREMAIL999L_COMPTE.txt", 1)
|
| Do until L_COMPTE.AtEndOfStream
| Do until resultSet.eof
| Loop
| L_COMPTE.Close
| Loop
|
| Set L_COMPTE = Nothing
| Set L_OPEEIC = Nothing
|
La commande de fermeture du fichier L_COMPTE.Close doit se situer à
l'extérieur de la première boucle do .. loop sinon vous fermez le
fichier à la fin de la première itération. Donc :
do until L_COMPTE
do until resultSet
loop
loop
L_COMPTE.Close
--
Gilles LAURENT
Me contacter : http://cerbermail.com/?zoTY7ZkLcD
"---DGI972---" <gilles.dermigny@*NO SPAM*laposte.net> a écrit dans le message de news:
Bonjour,
| Je remets cela, | J'ai uune boucle du même style mais avec une connection ODBC et je | suis de nouveau perdu.
[...]
| Set L_COMPTE = fso.OpenTextFile ("D:BREMAIL999L_COMPTE.txt", 1) | | Do until L_COMPTE.AtEndOfStream | Do until resultSet.eof | Loop | L_COMPTE.Close | Loop | | Set L_COMPTE = Nothing | Set L_OPEEIC = Nothing |
La commande de fermeture du fichier L_COMPTE.Close doit se situer à l'extérieur de la première boucle do .. loop sinon vous fermez le fichier à la fin de la première itération. Donc : do until L_COMPTE do until resultSet loop loop L_COMPTE.Close
-- Gilles LAURENT Me contacter : http://cerbermail.com/?zoTY7ZkLcD
---DGI972---
Gilles LAURENT a formulé ce mardi :
"---DGI972---" <gilles.dermigny@*NO SPAM*laposte.net> a écrit dans le message de news:
Bonjour,
Je remets cela, J'ai uune boucle du même style mais avec une connection ODBC et je suis de nouveau perdu.
[...]
Set L_COMPTE = fso.OpenTextFile ("D:BREMAIL999L_COMPTE.txt", 1)
Do until L_COMPTE.AtEndOfStream Do until resultSet.eof Loop L_COMPTE.Close Loop
Set L_COMPTE = Nothing Set L_OPEEIC = Nothing
La commande de fermeture du fichier L_COMPTE.Close doit se situer à l'extérieur de la première boucle do .. loop sinon vous fermez le fichier à la fin de la première itération. Donc : do until L_COMPTE do until resultSet loop loop L_COMPTE.Close
Un grand Merci,
C'était bien la le Pb, j'était sur plusieur Pb à la fois et je ne voyais pas l'erreur (et j'ai personne avec moi pour débugger).
J'ai fini mon petit projet grace à vous.
Merci encore DGI972
Gilles LAURENT a formulé ce mardi :
"---DGI972---" <gilles.dermigny@*NO SPAM*laposte.net> a écrit dans le
message de news:mn.e41b7d68857971ba.33554@NOSPAMlaposte.net
Bonjour,
Je remets cela,
J'ai uune boucle du même style mais avec une connection ODBC et je
suis de nouveau perdu.
[...]
Set L_COMPTE = fso.OpenTextFile ("D:BREMAIL999L_COMPTE.txt", 1)
Do until L_COMPTE.AtEndOfStream
Do until resultSet.eof
Loop
L_COMPTE.Close
Loop
Set L_COMPTE = Nothing
Set L_OPEEIC = Nothing
La commande de fermeture du fichier L_COMPTE.Close doit se situer à
l'extérieur de la première boucle do .. loop sinon vous fermez le
fichier à la fin de la première itération. Donc :
do until L_COMPTE
do until resultSet
loop
loop
L_COMPTE.Close
Un grand Merci,
C'était bien la le Pb, j'était sur plusieur Pb à la fois et je ne
voyais pas l'erreur (et j'ai personne avec moi pour débugger).
"---DGI972---" <gilles.dermigny@*NO SPAM*laposte.net> a écrit dans le message de news:
Bonjour,
Je remets cela, J'ai uune boucle du même style mais avec une connection ODBC et je suis de nouveau perdu.
[...]
Set L_COMPTE = fso.OpenTextFile ("D:BREMAIL999L_COMPTE.txt", 1)
Do until L_COMPTE.AtEndOfStream Do until resultSet.eof Loop L_COMPTE.Close Loop
Set L_COMPTE = Nothing Set L_OPEEIC = Nothing
La commande de fermeture du fichier L_COMPTE.Close doit se situer à l'extérieur de la première boucle do .. loop sinon vous fermez le fichier à la fin de la première itération. Donc : do until L_COMPTE do until resultSet loop loop L_COMPTE.Close
Un grand Merci,
C'était bien la le Pb, j'était sur plusieur Pb à la fois et je ne voyais pas l'erreur (et j'ai personne avec moi pour débugger).
J'ai fini mon petit projet grace à vous.
Merci encore DGI972
---DGI972---
Gilles LAURENT a formulé ce mardi :
"---DGI972---" <gilles.dermigny@*NO SPAM*laposte.net> a écrit dans le message de news:
Bonjour,
Je remets cela, J'ai uune boucle du même style mais avec une connection ODBC et je suis de nouveau perdu.
[...]
Set L_COMPTE = fso.OpenTextFile ("D:BREMAIL999L_COMPTE.txt", 1)
Do until L_COMPTE.AtEndOfStream Do until resultSet.eof Loop L_COMPTE.Close Loop
Set L_COMPTE = Nothing Set L_OPEEIC = Nothing
La commande de fermeture du fichier L_COMPTE.Close doit se situer à l'extérieur de la première boucle do .. loop sinon vous fermez le fichier à la fin de la première itération. Donc : do until L_COMPTE do until resultSet loop loop L_COMPTE.Close
Un grand Merci,
C'était bien la le Pb, j'était sur plusieur Pb à la fois et je ne voyais pas l'erreur (et j'ai personne avec moi pour débugger).
J'ai fini mon petit projet grace à vous.
Merci encore DGI972
Tout fonctionne comme je veux. Merci, je ne pensais pas vous trouver sur le fil aprés plus de 10 jours.
Gilles LAURENT a formulé ce mardi :
"---DGI972---" <gilles.dermigny@*NO SPAM*laposte.net> a écrit dans le
message de news:mn.e41b7d68857971ba.33554@NOSPAMlaposte.net
Bonjour,
Je remets cela,
J'ai uune boucle du même style mais avec une connection ODBC et je
suis de nouveau perdu.
[...]
Set L_COMPTE = fso.OpenTextFile ("D:BREMAIL999L_COMPTE.txt", 1)
Do until L_COMPTE.AtEndOfStream
Do until resultSet.eof
Loop
L_COMPTE.Close
Loop
Set L_COMPTE = Nothing
Set L_OPEEIC = Nothing
La commande de fermeture du fichier L_COMPTE.Close doit se situer à
l'extérieur de la première boucle do .. loop sinon vous fermez le
fichier à la fin de la première itération. Donc :
do until L_COMPTE
do until resultSet
loop
loop
L_COMPTE.Close
Un grand Merci,
C'était bien la le Pb, j'était sur plusieur Pb à la fois et je ne voyais pas
l'erreur (et j'ai personne avec moi pour débugger).
J'ai fini mon petit projet grace à vous.
Merci encore
DGI972
Tout fonctionne comme je veux.
Merci,
je ne pensais pas vous trouver sur le fil aprés plus de 10 jours.
"---DGI972---" <gilles.dermigny@*NO SPAM*laposte.net> a écrit dans le message de news:
Bonjour,
Je remets cela, J'ai uune boucle du même style mais avec une connection ODBC et je suis de nouveau perdu.
[...]
Set L_COMPTE = fso.OpenTextFile ("D:BREMAIL999L_COMPTE.txt", 1)
Do until L_COMPTE.AtEndOfStream Do until resultSet.eof Loop L_COMPTE.Close Loop
Set L_COMPTE = Nothing Set L_OPEEIC = Nothing
La commande de fermeture du fichier L_COMPTE.Close doit se situer à l'extérieur de la première boucle do .. loop sinon vous fermez le fichier à la fin de la première itération. Donc : do until L_COMPTE do until resultSet loop loop L_COMPTE.Close
Un grand Merci,
C'était bien la le Pb, j'était sur plusieur Pb à la fois et je ne voyais pas l'erreur (et j'ai personne avec moi pour débugger).
J'ai fini mon petit projet grace à vous.
Merci encore DGI972
Tout fonctionne comme je veux. Merci, je ne pensais pas vous trouver sur le fil aprés plus de 10 jours.
Gilles LAURENT
"---DGI972---" <gilles.dermigny@*NO SPAM* laposte.net> a écrit dans le message de news:
Bonjour,
| Tout fonctionne comme je veux.
C'est super ;-)
| Je ne pensais pas vous trouver sur le fil aprés plus de 10 jours.
Hé hé :-) Je garde toujours un oeil sur les fils auxquels j'ai participé
-- Gilles LAURENT Me contacter : http://cerbermail.com/?zoTY7ZkLcD
"---DGI972---" <gilles.dermigny@*NO SPAM* laposte.net> a écrit dans le
message de news:mn.ed017d682542e2cf.55474@NOSPAMlaposte.net
Bonjour,
| Tout fonctionne comme je veux.
C'est super ;-)
| Je ne pensais pas vous trouver sur le fil aprés plus de 10 jours.
Hé hé :-) Je garde toujours un oeil sur les fils auxquels j'ai participé
--
Gilles LAURENT
Me contacter : http://cerbermail.com/?zoTY7ZkLcD