Bonjour,
Je doit réaliser un Script pour décortiquer un fichier Spool d'édition
et avant de me lancer dans des lignes de code j'aurais souhaité
discuter de la faisabilité et de la méthode .
Je m'explique:
J'ai un fichier Spool qui contient des pages formatées avec des Noms
Prénoms adresses etc ...
Certaines Clients possédent plusieures pages qui sont numérotées
000001 000002 dans une position fixe dans le fichier.
Le but du Script est de faire un fichier pour les clients 1 pages, 1
fichier pour les clients à 2 Pages etc ...
Je pensais lire le fichier d'entrée (ligne par ligne) jusqu'a
rencontrer le symbole de changement de page (dans mon cas 1=1=) puis
écrire cette page complète dans un fichier temporaire en mémorisant
dans une variable la valeur de la page (par ex 00001), continuer la
lecture ligne par ligne jusqu'au caractère de fin de page, écrire dans
un autre fichier temporaire en mémorisant la variable de la page (par
exemple 00001).
Si les deux variables sont identiques le premier fichier temporaire
est bien un client en 1page il faut donc le recopier dans le fichier
client 1page.
Recopier le 2 iéme fichier temporaire dans le premier fichier
temporaire.
Je m'aperçois que je n'ai même pas le squelette de mon code.
Quelqu'un peut il m'aider à débroussailler ma problèmatique ???
Merci
Bonjour,
Je doit réaliser un Script pour décortiquer un fichier Spool d'édition
et avant de me lancer dans des lignes de code j'aurais souhaité
discuter de la faisabilité et de la méthode .
Je m'explique:
J'ai un fichier Spool qui contient des pages formatées avec des Noms
Prénoms adresses etc ...
Certaines Clients possédent plusieures pages qui sont numérotées
000001 000002 dans une position fixe dans le fichier.
Le but du Script est de faire un fichier pour les clients 1 pages, 1
fichier pour les clients à 2 Pages etc ...
Je pensais lire le fichier d'entrée (ligne par ligne) jusqu'a
rencontrer le symbole de changement de page (dans mon cas 1=1=) puis
écrire cette page complète dans un fichier temporaire en mémorisant
dans une variable la valeur de la page (par ex 00001), continuer la
lecture ligne par ligne jusqu'au caractère de fin de page, écrire dans
un autre fichier temporaire en mémorisant la variable de la page (par
exemple 00001).
Si les deux variables sont identiques le premier fichier temporaire
est bien un client en 1page il faut donc le recopier dans le fichier
client 1page.
Recopier le 2 iéme fichier temporaire dans le premier fichier
temporaire.
Je m'aperçois que je n'ai même pas le squelette de mon code.
Quelqu'un peut il m'aider à débroussailler ma problèmatique ???
Merci
Bonjour,
Je doit réaliser un Script pour décortiquer un fichier Spool d'édition
et avant de me lancer dans des lignes de code j'aurais souhaité
discuter de la faisabilité et de la méthode .
Je m'explique:
J'ai un fichier Spool qui contient des pages formatées avec des Noms
Prénoms adresses etc ...
Certaines Clients possédent plusieures pages qui sont numérotées
000001 000002 dans une position fixe dans le fichier.
Le but du Script est de faire un fichier pour les clients 1 pages, 1
fichier pour les clients à 2 Pages etc ...
Je pensais lire le fichier d'entrée (ligne par ligne) jusqu'a
rencontrer le symbole de changement de page (dans mon cas 1=1=) puis
écrire cette page complète dans un fichier temporaire en mémorisant
dans une variable la valeur de la page (par ex 00001), continuer la
lecture ligne par ligne jusqu'au caractère de fin de page, écrire dans
un autre fichier temporaire en mémorisant la variable de la page (par
exemple 00001).
Si les deux variables sont identiques le premier fichier temporaire
est bien un client en 1page il faut donc le recopier dans le fichier
client 1page.
Recopier le 2 iéme fichier temporaire dans le premier fichier
temporaire.
Je m'aperçois que je n'ai même pas le squelette de mon code.
Quelqu'un peut il m'aider à débroussailler ma problèmatique ???
Merci
Dans son message
---DGI972--- nous dit :Bonjour,
Je doit réaliser un Script pour décortiquer un fichier Spool d'édition
et avant de me lancer dans des lignes de code j'aurais souhaité
discuter de la faisabilité et de la méthode .
Je m'explique:
J'ai un fichier Spool qui contient des pages formatées avec des Noms
Prénoms adresses etc ...
Certaines Clients possédent plusieures pages qui sont numérotées
000001 000002 dans une position fixe dans le fichier.
Le but du Script est de faire un fichier pour les clients 1 pages, 1
fichier pour les clients à 2 Pages etc ...
Je pensais lire le fichier d'entrée (ligne par ligne) jusqu'a
rencontrer le symbole de changement de page (dans mon cas 1=1=) puis
écrire cette page complète dans un fichier temporaire en mémorisant
dans une variable la valeur de la page (par ex 00001), continuer la
lecture ligne par ligne jusqu'au caractère de fin de page, écrire dans
un autre fichier temporaire en mémorisant la variable de la page (par
exemple 00001).
Si les deux variables sont identiques le premier fichier temporaire
est bien un client en 1page il faut donc le recopier dans le fichier
client 1page.
Recopier le 2 iéme fichier temporaire dans le premier fichier
temporaire.
Je m'aperçois que je n'ai même pas le squelette de mon code.
Quelqu'un peut il m'aider à débroussailler ma problèmatique ???
Merci
Bonsoir,
Si ton problème est toujours d'actualité.
Je pense que tu peux te passer d'un des fichiers temporaires. Une chaîne de
caractères devrait pouvoir contenir une page entière (ou si c'est trop, au
moins ce qui suis la marque de fin de page jusqu'au numéro de la page
suivante, mais tu ne précises pas où il se trouve.)
Schématiquement, tu peux traiter ton fichier spool ligne par ligne. Dans la
boucle de traitement, tu peux insérer des actions en fonction de la ligne
courante.
Par exemple :
Si la ligne contient "1=1=", vider le contenu de la chaîne tampon dans le
fichier temporaire et réinitialiser la chaîne tampon.
(la chaîne tampon est une chaîne dans laquelle tu cumules les lignes lues
dans une page)
Si la ligne contient un numéro de page, et si ce numéro de page est 1, Tu
fermes ton fichier temporaire et tu l'ajoutes au fichier correspondant au
numéro de page vu auparavant (cela implique une variable pour mémoriser le
numéro de page) Et tu ouvres à nouveau ton fichier temporaire. Bien sûr tu
mémorises ce numéro de page.
C'est un peu succinct mais tu commences à avoir un peu l'habitude :-)
Mon principe ne gère pas le cas de la première ouverture du fichier
temporaire, ni le cas de la fin du fichier spool.
Il faudra le compléter un peu.
Dans son message mn.3cf87d5701f9e3ad.33384@NOSPAMlaposte.net
---DGI972--- nous dit :
Bonjour,
Je doit réaliser un Script pour décortiquer un fichier Spool d'édition
et avant de me lancer dans des lignes de code j'aurais souhaité
discuter de la faisabilité et de la méthode .
Je m'explique:
J'ai un fichier Spool qui contient des pages formatées avec des Noms
Prénoms adresses etc ...
Certaines Clients possédent plusieures pages qui sont numérotées
000001 000002 dans une position fixe dans le fichier.
Le but du Script est de faire un fichier pour les clients 1 pages, 1
fichier pour les clients à 2 Pages etc ...
Je pensais lire le fichier d'entrée (ligne par ligne) jusqu'a
rencontrer le symbole de changement de page (dans mon cas 1=1=) puis
écrire cette page complète dans un fichier temporaire en mémorisant
dans une variable la valeur de la page (par ex 00001), continuer la
lecture ligne par ligne jusqu'au caractère de fin de page, écrire dans
un autre fichier temporaire en mémorisant la variable de la page (par
exemple 00001).
Si les deux variables sont identiques le premier fichier temporaire
est bien un client en 1page il faut donc le recopier dans le fichier
client 1page.
Recopier le 2 iéme fichier temporaire dans le premier fichier
temporaire.
Je m'aperçois que je n'ai même pas le squelette de mon code.
Quelqu'un peut il m'aider à débroussailler ma problèmatique ???
Merci
Bonsoir,
Si ton problème est toujours d'actualité.
Je pense que tu peux te passer d'un des fichiers temporaires. Une chaîne de
caractères devrait pouvoir contenir une page entière (ou si c'est trop, au
moins ce qui suis la marque de fin de page jusqu'au numéro de la page
suivante, mais tu ne précises pas où il se trouve.)
Schématiquement, tu peux traiter ton fichier spool ligne par ligne. Dans la
boucle de traitement, tu peux insérer des actions en fonction de la ligne
courante.
Par exemple :
Si la ligne contient "1=1=", vider le contenu de la chaîne tampon dans le
fichier temporaire et réinitialiser la chaîne tampon.
(la chaîne tampon est une chaîne dans laquelle tu cumules les lignes lues
dans une page)
Si la ligne contient un numéro de page, et si ce numéro de page est 1, Tu
fermes ton fichier temporaire et tu l'ajoutes au fichier correspondant au
numéro de page vu auparavant (cela implique une variable pour mémoriser le
numéro de page) Et tu ouvres à nouveau ton fichier temporaire. Bien sûr tu
mémorises ce numéro de page.
C'est un peu succinct mais tu commences à avoir un peu l'habitude :-)
Mon principe ne gère pas le cas de la première ouverture du fichier
temporaire, ni le cas de la fin du fichier spool.
Il faudra le compléter un peu.
Dans son message
---DGI972--- nous dit :Bonjour,
Je doit réaliser un Script pour décortiquer un fichier Spool d'édition
et avant de me lancer dans des lignes de code j'aurais souhaité
discuter de la faisabilité et de la méthode .
Je m'explique:
J'ai un fichier Spool qui contient des pages formatées avec des Noms
Prénoms adresses etc ...
Certaines Clients possédent plusieures pages qui sont numérotées
000001 000002 dans une position fixe dans le fichier.
Le but du Script est de faire un fichier pour les clients 1 pages, 1
fichier pour les clients à 2 Pages etc ...
Je pensais lire le fichier d'entrée (ligne par ligne) jusqu'a
rencontrer le symbole de changement de page (dans mon cas 1=1=) puis
écrire cette page complète dans un fichier temporaire en mémorisant
dans une variable la valeur de la page (par ex 00001), continuer la
lecture ligne par ligne jusqu'au caractère de fin de page, écrire dans
un autre fichier temporaire en mémorisant la variable de la page (par
exemple 00001).
Si les deux variables sont identiques le premier fichier temporaire
est bien un client en 1page il faut donc le recopier dans le fichier
client 1page.
Recopier le 2 iéme fichier temporaire dans le premier fichier
temporaire.
Je m'aperçois que je n'ai même pas le squelette de mon code.
Quelqu'un peut il m'aider à débroussailler ma problèmatique ???
Merci
Bonsoir,
Si ton problème est toujours d'actualité.
Je pense que tu peux te passer d'un des fichiers temporaires. Une chaîne de
caractères devrait pouvoir contenir une page entière (ou si c'est trop, au
moins ce qui suis la marque de fin de page jusqu'au numéro de la page
suivante, mais tu ne précises pas où il se trouve.)
Schématiquement, tu peux traiter ton fichier spool ligne par ligne. Dans la
boucle de traitement, tu peux insérer des actions en fonction de la ligne
courante.
Par exemple :
Si la ligne contient "1=1=", vider le contenu de la chaîne tampon dans le
fichier temporaire et réinitialiser la chaîne tampon.
(la chaîne tampon est une chaîne dans laquelle tu cumules les lignes lues
dans une page)
Si la ligne contient un numéro de page, et si ce numéro de page est 1, Tu
fermes ton fichier temporaire et tu l'ajoutes au fichier correspondant au
numéro de page vu auparavant (cela implique une variable pour mémoriser le
numéro de page) Et tu ouvres à nouveau ton fichier temporaire. Bien sûr tu
mémorises ce numéro de page.
C'est un peu succinct mais tu commences à avoir un peu l'habitude :-)
Mon principe ne gère pas le cas de la première ouverture du fichier
temporaire, ni le cas de la fin du fichier spool.
Il faudra le compléter un peu.
Dans son message
---DGI972--- nous dit :Bonjour,
Je doit réaliser un Script pour décortiquer un fichier Spool
d'édition et avant de me lancer dans des lignes de code j'aurais
souhaité discuter de la faisabilité et de la méthode .
Je m'explique:
J'ai un fichier Spool qui contient des pages formatées avec des Noms
Prénoms adresses etc ...
Certaines Clients possédent plusieures pages qui sont numérotées
000001 000002 dans une position fixe dans le fichier.
Le but du Script est de faire un fichier pour les clients 1 pages, 1
fichier pour les clients à 2 Pages etc ...
Je pensais lire le fichier d'entrée (ligne par ligne) jusqu'a
rencontrer le symbole de changement de page (dans mon cas 1=1=) puis
écrire cette page complète dans un fichier temporaire en mémorisant
dans une variable la valeur de la page (par ex 00001), continuer la
lecture ligne par ligne jusqu'au caractère de fin de page, écrire
dans un autre fichier temporaire en mémorisant la variable de la
page (par exemple 00001).
Si les deux variables sont identiques le premier fichier temporaire
est bien un client en 1page il faut donc le recopier dans le fichier
client 1page.
Recopier le 2 iéme fichier temporaire dans le premier fichier
temporaire.
Je m'aperçois que je n'ai même pas le squelette de mon code.
Quelqu'un peut il m'aider à débroussailler ma problèmatique ???
Merci
Bonsoir,
Si ton problème est toujours d'actualité.
Je pense que tu peux te passer d'un des fichiers temporaires. Une
chaîne de caractères devrait pouvoir contenir une page entière (ou
si c'est trop, au moins ce qui suis la marque de fin de page
jusqu'au numéro de la page suivante, mais tu ne précises pas où il
se trouve.) Schématiquement, tu peux traiter ton fichier spool ligne
par ligne.
Dans la boucle de traitement, tu peux insérer des actions en
fonction de la ligne courante.
Par exemple :
Si la ligne contient "1=1=", vider le contenu de la chaîne tampon
dans le fichier temporaire et réinitialiser la chaîne tampon.
(la chaîne tampon est une chaîne dans laquelle tu cumules les lignes
lues dans une page)
Si la ligne contient un numéro de page, et si ce numéro de page est
1, Tu fermes ton fichier temporaire et tu l'ajoutes au fichier
correspondant au numéro de page vu auparavant (cela implique une
variable pour mémoriser le numéro de page) Et tu ouvres à nouveau
ton fichier temporaire. Bien sûr tu mémorises ce numéro de page.
C'est un peu succinct mais tu commences à avoir un peu l'habitude :-)
Mon principe ne gère pas le cas de la première ouverture du fichier
temporaire, ni le cas de la fin du fichier spool.
Il faudra le compléter un peu.
Bonjour,
Oui, mon problème est toujours d'actualité.
Je n'arrive pas a visualiser le fait de découper par un chaine tampon
car une fois que je rencontre la chaine de caractère 1=1 j'ai en
mémoire la totalitée de la page mais je ne sais pas comment est la
page suivante.Il faut faire une sorte de flip flop ??.
Sinon je m'oriente aussi vers l'analyse du numéro de client qui est
unique avec la méthode
Set dic = CreateObject("Scripting.Dictionary")
If not dic.Exists(N°CLIENT) Then
dic.Add N°CLIENT,SLine
Si je rencontre le numéros de client plusieurs fois c'est qu'il y a
autand de fois de page (1/3 2/3 3/3 si je rencontre 3 fois le Numéros
de client).
Je pense donc infuencer directement le fichier en recopiant dans le
fichier spool de sortie 00001/00003 pour la 1ère page 00002/00003 et
00003/00003 pour la trosème page.
Je serais capable par la suite de traiter les différentes pages.
Mais je m'avance peut être pour affirmer que si je rencontre plusieur
fois le numéros de client c'est que les pages suivent, de pouvoir
compter le nombre de Numéros de client avec la méthode dic.Add, et via
une chaine tampon de savoir la valeur la prochaine page.
Merci pour le soutien, mais je sens que je vais partir en congé avec
le bébé dans le portable.
Dans son message mn.3cf87d5701f9e3ad.33384@NOSPAMlaposte.net
---DGI972--- nous dit :
Bonjour,
Je doit réaliser un Script pour décortiquer un fichier Spool
d'édition et avant de me lancer dans des lignes de code j'aurais
souhaité discuter de la faisabilité et de la méthode .
Je m'explique:
J'ai un fichier Spool qui contient des pages formatées avec des Noms
Prénoms adresses etc ...
Certaines Clients possédent plusieures pages qui sont numérotées
000001 000002 dans une position fixe dans le fichier.
Le but du Script est de faire un fichier pour les clients 1 pages, 1
fichier pour les clients à 2 Pages etc ...
Je pensais lire le fichier d'entrée (ligne par ligne) jusqu'a
rencontrer le symbole de changement de page (dans mon cas 1=1=) puis
écrire cette page complète dans un fichier temporaire en mémorisant
dans une variable la valeur de la page (par ex 00001), continuer la
lecture ligne par ligne jusqu'au caractère de fin de page, écrire
dans un autre fichier temporaire en mémorisant la variable de la
page (par exemple 00001).
Si les deux variables sont identiques le premier fichier temporaire
est bien un client en 1page il faut donc le recopier dans le fichier
client 1page.
Recopier le 2 iéme fichier temporaire dans le premier fichier
temporaire.
Je m'aperçois que je n'ai même pas le squelette de mon code.
Quelqu'un peut il m'aider à débroussailler ma problèmatique ???
Merci
Bonsoir,
Si ton problème est toujours d'actualité.
Je pense que tu peux te passer d'un des fichiers temporaires. Une
chaîne de caractères devrait pouvoir contenir une page entière (ou
si c'est trop, au moins ce qui suis la marque de fin de page
jusqu'au numéro de la page suivante, mais tu ne précises pas où il
se trouve.) Schématiquement, tu peux traiter ton fichier spool ligne
par ligne.
Dans la boucle de traitement, tu peux insérer des actions en
fonction de la ligne courante.
Par exemple :
Si la ligne contient "1=1=", vider le contenu de la chaîne tampon
dans le fichier temporaire et réinitialiser la chaîne tampon.
(la chaîne tampon est une chaîne dans laquelle tu cumules les lignes
lues dans une page)
Si la ligne contient un numéro de page, et si ce numéro de page est
1, Tu fermes ton fichier temporaire et tu l'ajoutes au fichier
correspondant au numéro de page vu auparavant (cela implique une
variable pour mémoriser le numéro de page) Et tu ouvres à nouveau
ton fichier temporaire. Bien sûr tu mémorises ce numéro de page.
C'est un peu succinct mais tu commences à avoir un peu l'habitude :-)
Mon principe ne gère pas le cas de la première ouverture du fichier
temporaire, ni le cas de la fin du fichier spool.
Il faudra le compléter un peu.
Bonjour,
Oui, mon problème est toujours d'actualité.
Je n'arrive pas a visualiser le fait de découper par un chaine tampon
car une fois que je rencontre la chaine de caractère 1=1 j'ai en
mémoire la totalitée de la page mais je ne sais pas comment est la
page suivante.Il faut faire une sorte de flip flop ??.
Sinon je m'oriente aussi vers l'analyse du numéro de client qui est
unique avec la méthode
Set dic = CreateObject("Scripting.Dictionary")
If not dic.Exists(N°CLIENT) Then
dic.Add N°CLIENT,SLine
Si je rencontre le numéros de client plusieurs fois c'est qu'il y a
autand de fois de page (1/3 2/3 3/3 si je rencontre 3 fois le Numéros
de client).
Je pense donc infuencer directement le fichier en recopiant dans le
fichier spool de sortie 00001/00003 pour la 1ère page 00002/00003 et
00003/00003 pour la trosème page.
Je serais capable par la suite de traiter les différentes pages.
Mais je m'avance peut être pour affirmer que si je rencontre plusieur
fois le numéros de client c'est que les pages suivent, de pouvoir
compter le nombre de Numéros de client avec la méthode dic.Add, et via
une chaine tampon de savoir la valeur la prochaine page.
Merci pour le soutien, mais je sens que je vais partir en congé avec
le bébé dans le portable.
Dans son message
---DGI972--- nous dit :Bonjour,
Je doit réaliser un Script pour décortiquer un fichier Spool
d'édition et avant de me lancer dans des lignes de code j'aurais
souhaité discuter de la faisabilité et de la méthode .
Je m'explique:
J'ai un fichier Spool qui contient des pages formatées avec des Noms
Prénoms adresses etc ...
Certaines Clients possédent plusieures pages qui sont numérotées
000001 000002 dans une position fixe dans le fichier.
Le but du Script est de faire un fichier pour les clients 1 pages, 1
fichier pour les clients à 2 Pages etc ...
Je pensais lire le fichier d'entrée (ligne par ligne) jusqu'a
rencontrer le symbole de changement de page (dans mon cas 1=1=) puis
écrire cette page complète dans un fichier temporaire en mémorisant
dans une variable la valeur de la page (par ex 00001), continuer la
lecture ligne par ligne jusqu'au caractère de fin de page, écrire
dans un autre fichier temporaire en mémorisant la variable de la
page (par exemple 00001).
Si les deux variables sont identiques le premier fichier temporaire
est bien un client en 1page il faut donc le recopier dans le fichier
client 1page.
Recopier le 2 iéme fichier temporaire dans le premier fichier
temporaire.
Je m'aperçois que je n'ai même pas le squelette de mon code.
Quelqu'un peut il m'aider à débroussailler ma problèmatique ???
Merci
Bonsoir,
Si ton problème est toujours d'actualité.
Je pense que tu peux te passer d'un des fichiers temporaires. Une
chaîne de caractères devrait pouvoir contenir une page entière (ou
si c'est trop, au moins ce qui suis la marque de fin de page
jusqu'au numéro de la page suivante, mais tu ne précises pas où il
se trouve.) Schématiquement, tu peux traiter ton fichier spool ligne
par ligne.
Dans la boucle de traitement, tu peux insérer des actions en
fonction de la ligne courante.
Par exemple :
Si la ligne contient "1=1=", vider le contenu de la chaîne tampon
dans le fichier temporaire et réinitialiser la chaîne tampon.
(la chaîne tampon est une chaîne dans laquelle tu cumules les lignes
lues dans une page)
Si la ligne contient un numéro de page, et si ce numéro de page est
1, Tu fermes ton fichier temporaire et tu l'ajoutes au fichier
correspondant au numéro de page vu auparavant (cela implique une
variable pour mémoriser le numéro de page) Et tu ouvres à nouveau
ton fichier temporaire. Bien sûr tu mémorises ce numéro de page.
C'est un peu succinct mais tu commences à avoir un peu l'habitude :-)
Mon principe ne gère pas le cas de la première ouverture du fichier
temporaire, ni le cas de la fin du fichier spool.
Il faudra le compléter un peu.
Bonjour,
Oui, mon problème est toujours d'actualité.
Je n'arrive pas a visualiser le fait de découper par un chaine tampon
car une fois que je rencontre la chaine de caractère 1=1 j'ai en
mémoire la totalitée de la page mais je ne sais pas comment est la
page suivante.Il faut faire une sorte de flip flop ??.
Sinon je m'oriente aussi vers l'analyse du numéro de client qui est
unique avec la méthode
Set dic = CreateObject("Scripting.Dictionary")
If not dic.Exists(N°CLIENT) Then
dic.Add N°CLIENT,SLine
Si je rencontre le numéros de client plusieurs fois c'est qu'il y a
autand de fois de page (1/3 2/3 3/3 si je rencontre 3 fois le Numéros
de client).
Je pense donc infuencer directement le fichier en recopiant dans le
fichier spool de sortie 00001/00003 pour la 1ère page 00002/00003 et
00003/00003 pour la trosème page.
Je serais capable par la suite de traiter les différentes pages.
Mais je m'avance peut être pour affirmer que si je rencontre plusieur
fois le numéros de client c'est que les pages suivent, de pouvoir
compter le nombre de Numéros de client avec la méthode dic.Add, et via
une chaine tampon de savoir la valeur la prochaine page.
Merci pour le soutien, mais je sens que je vais partir en congé avec
le bébé dans le portable.
Dans le message:,
---DGI972--- écrit:Dans son message
---DGI972--- nous dit :Bonjour,
Je doit réaliser un Script pour décortiquer un fichier Spool
d'édition et avant de me lancer dans des lignes de code j'aurais
souhaité discuter de la faisabilité et de la méthode .
Je m'explique:
J'ai un fichier Spool qui contient des pages formatées avec des Noms
Prénoms adresses etc ...
Certaines Clients possédent plusieures pages qui sont numérotées
000001 000002 dans une position fixe dans le fichier.
Le but du Script est de faire un fichier pour les clients 1 pages, 1
fichier pour les clients à 2 Pages etc ...
Je pensais lire le fichier d'entrée (ligne par ligne) jusqu'a
rencontrer le symbole de changement de page (dans mon cas 1=1=) puis
écrire cette page complète dans un fichier temporaire en mémorisant
dans une variable la valeur de la page (par ex 00001), continuer la
lecture ligne par ligne jusqu'au caractère de fin de page, écrire
dans un autre fichier temporaire en mémorisant la variable de la
page (par exemple 00001).
Si les deux variables sont identiques le premier fichier temporaire
est bien un client en 1page il faut donc le recopier dans le fichier
client 1page.
Recopier le 2 iéme fichier temporaire dans le premier fichier
temporaire.
Je m'aperçois que je n'ai même pas le squelette de mon code.
Quelqu'un peut il m'aider à débroussailler ma problèmatique ???
Merci
Bonsoir,
Si ton problème est toujours d'actualité.
Je pense que tu peux te passer d'un des fichiers temporaires. Une
chaîne de caractères devrait pouvoir contenir une page entière (ou
si c'est trop, au moins ce qui suis la marque de fin de page
jusqu'au numéro de la page suivante, mais tu ne précises pas où il
se trouve.) Schématiquement, tu peux traiter ton fichier spool ligne par
ligne.
Dans la boucle de traitement, tu peux insérer des actions en
fonction de la ligne courante.
Par exemple :
Si la ligne contient "1=1=", vider le contenu de la chaîne tampon
dans le fichier temporaire et réinitialiser la chaîne tampon.
(la chaîne tampon est une chaîne dans laquelle tu cumules les lignes
lues dans une page)
Si la ligne contient un numéro de page, et si ce numéro de page est
1, Tu fermes ton fichier temporaire et tu l'ajoutes au fichier
correspondant au numéro de page vu auparavant (cela implique une
variable pour mémoriser le numéro de page) Et tu ouvres à nouveau
ton fichier temporaire. Bien sûr tu mémorises ce numéro de page.
C'est un peu succinct mais tu commences à avoir un peu l'habitude :-)
Mon principe ne gère pas le cas de la première ouverture du fichier
temporaire, ni le cas de la fin du fichier spool.
Il faudra le compléter un peu.
Bonjour,
Oui, mon problème est toujours d'actualité.
Je n'arrive pas a visualiser le fait de découper par un chaine tampon
car une fois que je rencontre la chaine de caractère 1=1 j'ai en
mémoire la totalitée de la page mais je ne sais pas comment est la
page suivante.Il faut faire une sorte de flip flop ??.
Sinon je m'oriente aussi vers l'analyse du numéro de client qui est
unique avec la méthode
Set dic = CreateObject("Scripting.Dictionary")
If not dic.Exists(N°CLIENT) Then
dic.Add N°CLIENT,SLine
Si je rencontre le numéros de client plusieurs fois c'est qu'il y a
autand de fois de page (1/3 2/3 3/3 si je rencontre 3 fois le Numéros
de client).
Je pense donc infuencer directement le fichier en recopiant dans le
fichier spool de sortie 00001/00003 pour la 1ère page 00002/00003 et
00003/00003 pour la trosème page.
Je serais capable par la suite de traiter les différentes pages.
Mais je m'avance peut être pour affirmer que si je rencontre plusieur
fois le numéros de client c'est que les pages suivent, de pouvoir
compter le nombre de Numéros de client avec la méthode dic.Add, et via
une chaine tampon de savoir la valeur la prochaine page.
Merci pour le soutien, mais je sens que je vais partir en congé avec
le bébé dans le portable.
Bonjour,
Le scripting est formellement interdit pendant les congés :-)
Fais tourner mon algorithme sur un exemple. Tu devrais constater les points
suivants :
- dans la chaîne ne figure que la page en cours de lecture.
- dans le fichier temporaire ne figurent que les pages précédentes.
Le principe est donc : si dans la chaîne (page en cours de lecture) on
détecte que le numéro de pages est 1, alors ce qui figure dans le fichier
temporaire concerne un lot de pages complet et prêt à être archiver en
fonction de nombre de ses pages. (sauf pour la première page)
Auquel cas on vide le fichier temporaire. La rencontre du prochain saut de
page aura pour effet de remplir ce fichier temporaire avec ce que contient la
chaîne, c'est-à-dire la première page d'un nouveau lot.
Si le numéro de page n'est pas 1, on continue la lecture et la rencontre du
prochain saut de page aura pour effet d'ajouter la page en cours (chaîne) à
la fin du fichier temporaire.
Penser à vider la chaîne dans le fichier temporaire à la fin du fichier spool
et copier le fichier temporaire dans le bon lot.
Si j'ai un moment ce soir et que tu n'as pas trouvé de solution, j'écrirai
cela de manière un peu plus complète.
Dans le message:mn.5cd37d57f4f685b8.33384@NOSPAMlaposte.net,
---DGI972--- écrit:
Dans son message mn.3cf87d5701f9e3ad.33384@NOSPAMlaposte.net
---DGI972--- nous dit :
Bonjour,
Je doit réaliser un Script pour décortiquer un fichier Spool
d'édition et avant de me lancer dans des lignes de code j'aurais
souhaité discuter de la faisabilité et de la méthode .
Je m'explique:
J'ai un fichier Spool qui contient des pages formatées avec des Noms
Prénoms adresses etc ...
Certaines Clients possédent plusieures pages qui sont numérotées
000001 000002 dans une position fixe dans le fichier.
Le but du Script est de faire un fichier pour les clients 1 pages, 1
fichier pour les clients à 2 Pages etc ...
Je pensais lire le fichier d'entrée (ligne par ligne) jusqu'a
rencontrer le symbole de changement de page (dans mon cas 1=1=) puis
écrire cette page complète dans un fichier temporaire en mémorisant
dans une variable la valeur de la page (par ex 00001), continuer la
lecture ligne par ligne jusqu'au caractère de fin de page, écrire
dans un autre fichier temporaire en mémorisant la variable de la
page (par exemple 00001).
Si les deux variables sont identiques le premier fichier temporaire
est bien un client en 1page il faut donc le recopier dans le fichier
client 1page.
Recopier le 2 iéme fichier temporaire dans le premier fichier
temporaire.
Je m'aperçois que je n'ai même pas le squelette de mon code.
Quelqu'un peut il m'aider à débroussailler ma problèmatique ???
Merci
Bonsoir,
Si ton problème est toujours d'actualité.
Je pense que tu peux te passer d'un des fichiers temporaires. Une
chaîne de caractères devrait pouvoir contenir une page entière (ou
si c'est trop, au moins ce qui suis la marque de fin de page
jusqu'au numéro de la page suivante, mais tu ne précises pas où il
se trouve.) Schématiquement, tu peux traiter ton fichier spool ligne par
ligne.
Dans la boucle de traitement, tu peux insérer des actions en
fonction de la ligne courante.
Par exemple :
Si la ligne contient "1=1=", vider le contenu de la chaîne tampon
dans le fichier temporaire et réinitialiser la chaîne tampon.
(la chaîne tampon est une chaîne dans laquelle tu cumules les lignes
lues dans une page)
Si la ligne contient un numéro de page, et si ce numéro de page est
1, Tu fermes ton fichier temporaire et tu l'ajoutes au fichier
correspondant au numéro de page vu auparavant (cela implique une
variable pour mémoriser le numéro de page) Et tu ouvres à nouveau
ton fichier temporaire. Bien sûr tu mémorises ce numéro de page.
C'est un peu succinct mais tu commences à avoir un peu l'habitude :-)
Mon principe ne gère pas le cas de la première ouverture du fichier
temporaire, ni le cas de la fin du fichier spool.
Il faudra le compléter un peu.
Bonjour,
Oui, mon problème est toujours d'actualité.
Je n'arrive pas a visualiser le fait de découper par un chaine tampon
car une fois que je rencontre la chaine de caractère 1=1 j'ai en
mémoire la totalitée de la page mais je ne sais pas comment est la
page suivante.Il faut faire une sorte de flip flop ??.
Sinon je m'oriente aussi vers l'analyse du numéro de client qui est
unique avec la méthode
Set dic = CreateObject("Scripting.Dictionary")
If not dic.Exists(N°CLIENT) Then
dic.Add N°CLIENT,SLine
Si je rencontre le numéros de client plusieurs fois c'est qu'il y a
autand de fois de page (1/3 2/3 3/3 si je rencontre 3 fois le Numéros
de client).
Je pense donc infuencer directement le fichier en recopiant dans le
fichier spool de sortie 00001/00003 pour la 1ère page 00002/00003 et
00003/00003 pour la trosème page.
Je serais capable par la suite de traiter les différentes pages.
Mais je m'avance peut être pour affirmer que si je rencontre plusieur
fois le numéros de client c'est que les pages suivent, de pouvoir
compter le nombre de Numéros de client avec la méthode dic.Add, et via
une chaine tampon de savoir la valeur la prochaine page.
Merci pour le soutien, mais je sens que je vais partir en congé avec
le bébé dans le portable.
Bonjour,
Le scripting est formellement interdit pendant les congés :-)
Fais tourner mon algorithme sur un exemple. Tu devrais constater les points
suivants :
- dans la chaîne ne figure que la page en cours de lecture.
- dans le fichier temporaire ne figurent que les pages précédentes.
Le principe est donc : si dans la chaîne (page en cours de lecture) on
détecte que le numéro de pages est 1, alors ce qui figure dans le fichier
temporaire concerne un lot de pages complet et prêt à être archiver en
fonction de nombre de ses pages. (sauf pour la première page)
Auquel cas on vide le fichier temporaire. La rencontre du prochain saut de
page aura pour effet de remplir ce fichier temporaire avec ce que contient la
chaîne, c'est-à-dire la première page d'un nouveau lot.
Si le numéro de page n'est pas 1, on continue la lecture et la rencontre du
prochain saut de page aura pour effet d'ajouter la page en cours (chaîne) à
la fin du fichier temporaire.
Penser à vider la chaîne dans le fichier temporaire à la fin du fichier spool
et copier le fichier temporaire dans le bon lot.
Si j'ai un moment ce soir et que tu n'as pas trouvé de solution, j'écrirai
cela de manière un peu plus complète.
Dans le message:,
---DGI972--- écrit:Dans son message
---DGI972--- nous dit :Bonjour,
Je doit réaliser un Script pour décortiquer un fichier Spool
d'édition et avant de me lancer dans des lignes de code j'aurais
souhaité discuter de la faisabilité et de la méthode .
Je m'explique:
J'ai un fichier Spool qui contient des pages formatées avec des Noms
Prénoms adresses etc ...
Certaines Clients possédent plusieures pages qui sont numérotées
000001 000002 dans une position fixe dans le fichier.
Le but du Script est de faire un fichier pour les clients 1 pages, 1
fichier pour les clients à 2 Pages etc ...
Je pensais lire le fichier d'entrée (ligne par ligne) jusqu'a
rencontrer le symbole de changement de page (dans mon cas 1=1=) puis
écrire cette page complète dans un fichier temporaire en mémorisant
dans une variable la valeur de la page (par ex 00001), continuer la
lecture ligne par ligne jusqu'au caractère de fin de page, écrire
dans un autre fichier temporaire en mémorisant la variable de la
page (par exemple 00001).
Si les deux variables sont identiques le premier fichier temporaire
est bien un client en 1page il faut donc le recopier dans le fichier
client 1page.
Recopier le 2 iéme fichier temporaire dans le premier fichier
temporaire.
Je m'aperçois que je n'ai même pas le squelette de mon code.
Quelqu'un peut il m'aider à débroussailler ma problèmatique ???
Merci
Bonsoir,
Si ton problème est toujours d'actualité.
Je pense que tu peux te passer d'un des fichiers temporaires. Une
chaîne de caractères devrait pouvoir contenir une page entière (ou
si c'est trop, au moins ce qui suis la marque de fin de page
jusqu'au numéro de la page suivante, mais tu ne précises pas où il
se trouve.) Schématiquement, tu peux traiter ton fichier spool ligne par
ligne.
Dans la boucle de traitement, tu peux insérer des actions en
fonction de la ligne courante.
Par exemple :
Si la ligne contient "1=1=", vider le contenu de la chaîne tampon
dans le fichier temporaire et réinitialiser la chaîne tampon.
(la chaîne tampon est une chaîne dans laquelle tu cumules les lignes
lues dans une page)
Si la ligne contient un numéro de page, et si ce numéro de page est
1, Tu fermes ton fichier temporaire et tu l'ajoutes au fichier
correspondant au numéro de page vu auparavant (cela implique une
variable pour mémoriser le numéro de page) Et tu ouvres à nouveau
ton fichier temporaire. Bien sûr tu mémorises ce numéro de page.
C'est un peu succinct mais tu commences à avoir un peu l'habitude :-)
Mon principe ne gère pas le cas de la première ouverture du fichier
temporaire, ni le cas de la fin du fichier spool.
Il faudra le compléter un peu.
Bonjour,
Oui, mon problème est toujours d'actualité.
Je n'arrive pas a visualiser le fait de découper par un chaine tampon
car une fois que je rencontre la chaine de caractère 1=1 j'ai en
mémoire la totalitée de la page mais je ne sais pas comment est la
page suivante.Il faut faire une sorte de flip flop ??.
Sinon je m'oriente aussi vers l'analyse du numéro de client qui est
unique avec la méthode
Set dic = CreateObject("Scripting.Dictionary")
If not dic.Exists(N°CLIENT) Then
dic.Add N°CLIENT,SLine
Si je rencontre le numéros de client plusieurs fois c'est qu'il y a
autand de fois de page (1/3 2/3 3/3 si je rencontre 3 fois le Numéros
de client).
Je pense donc infuencer directement le fichier en recopiant dans le
fichier spool de sortie 00001/00003 pour la 1ère page 00002/00003 et
00003/00003 pour la trosème page.
Je serais capable par la suite de traiter les différentes pages.
Mais je m'avance peut être pour affirmer que si je rencontre plusieur
fois le numéros de client c'est que les pages suivent, de pouvoir
compter le nombre de Numéros de client avec la méthode dic.Add, et via
une chaine tampon de savoir la valeur la prochaine page.
Merci pour le soutien, mais je sens que je vais partir en congé avec
le bébé dans le portable.
Bonjour,
Le scripting est formellement interdit pendant les congés :-)
Fais tourner mon algorithme sur un exemple. Tu devrais constater les points
suivants :
- dans la chaîne ne figure que la page en cours de lecture.
- dans le fichier temporaire ne figurent que les pages précédentes.
Le principe est donc : si dans la chaîne (page en cours de lecture) on
détecte que le numéro de pages est 1, alors ce qui figure dans le fichier
temporaire concerne un lot de pages complet et prêt à être archiver en
fonction de nombre de ses pages. (sauf pour la première page)
Auquel cas on vide le fichier temporaire. La rencontre du prochain saut de
page aura pour effet de remplir ce fichier temporaire avec ce que contient la
chaîne, c'est-à-dire la première page d'un nouveau lot.
Si le numéro de page n'est pas 1, on continue la lecture et la rencontre du
prochain saut de page aura pour effet d'ajouter la page en cours (chaîne) à
la fin du fichier temporaire.
Penser à vider la chaîne dans le fichier temporaire à la fin du fichier spool
et copier le fichier temporaire dans le bon lot.
Si j'ai un moment ce soir et que tu n'as pas trouvé de solution, j'écrirai
cela de manière un peu plus complète.
Fred a émis l'idée suivante :Dans le message:,
---DGI972--- écrit:Dans son message
---DGI972--- nous dit :
[...]
Fred a émis l'idée suivante :
Dans le message:mn.5cd37d57f4f685b8.33384@NOSPAMlaposte.net,
---DGI972--- écrit:
Dans son message mn.3cf87d5701f9e3ad.33384@NOSPAMlaposte.net
---DGI972--- nous dit :
[...]
Fred a émis l'idée suivante :Dans le message:,
---DGI972--- écrit:Dans son message
---DGI972--- nous dit :
[...]
Dans le message:,
---DGI972--- écrit:Fred a émis l'idée suivante :Dans le message:,
---DGI972--- écrit:Dans son message
---DGI972--- nous dit :
[...]
Bonjour,
Je jette un oeil ce soir, promis.
En attendant, j'aurais besoin d'une petite précision.
Sur la ligne qui contient la marque de fin de document. Y a-t-il des données,
après la marque, qui devraient être intégrées dans la page suivante ?
Ou bien est-ce que cette ligne toute entière peut-être considérée comme la
dernière de la page ?
Pour le reste je devrais y voir assez clair avec ton bout de code.
A plus tard.
Dans le message:mn.615b7d57e670dac1.33384@NOSPAMlaposte.net,
---DGI972--- écrit:
Fred a émis l'idée suivante :
Dans le message:mn.5cd37d57f4f685b8.33384@NOSPAMlaposte.net,
---DGI972--- écrit:
Dans son message mn.3cf87d5701f9e3ad.33384@NOSPAMlaposte.net
---DGI972--- nous dit :
[...]
Bonjour,
Je jette un oeil ce soir, promis.
En attendant, j'aurais besoin d'une petite précision.
Sur la ligne qui contient la marque de fin de document. Y a-t-il des données,
après la marque, qui devraient être intégrées dans la page suivante ?
Ou bien est-ce que cette ligne toute entière peut-être considérée comme la
dernière de la page ?
Pour le reste je devrais y voir assez clair avec ton bout de code.
A plus tard.
Dans le message:,
---DGI972--- écrit:Fred a émis l'idée suivante :Dans le message:,
---DGI972--- écrit:Dans son message
---DGI972--- nous dit :
[...]
Bonjour,
Je jette un oeil ce soir, promis.
En attendant, j'aurais besoin d'une petite précision.
Sur la ligne qui contient la marque de fin de document. Y a-t-il des données,
après la marque, qui devraient être intégrées dans la page suivante ?
Ou bien est-ce que cette ligne toute entière peut-être considérée comme la
dernière de la page ?
Pour le reste je devrais y voir assez clair avec ton bout de code.
A plus tard.
Dans le message:,
---DGI972--- écrit:Fred a émis l'idée suivante :Dans le message:,
---DGI972--- écrit:Fred a émis l'idée suivante :Dans le message:,
---DGI972--- écrit:Dans son message
---DGI972--- nous dit :
[...]
Chaque page commence par 1=1
Ex: Mr TOTO a 2 pages et Mr TINTIN 1 seul page.
1=1
Là, je ne sais pas si la ligne est complétée avec des blancs dans le fichier
original
Il faudra peut-être modifier le test suivant dans le programme :
8<-----------
If Instr(sLine, "1=1") = 1 And Len(sLine) = 3 Then
8<------------00001128477700122477700 CPT051P120050220000001000001 26
P10676222260
MR TOTO
Rue TATA
91000 TITI
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
1=1
00001128477700122477700 CPT051P120050220000001000002 26
P10676222260
MR TOTO
Rue TATA
91000 TITI
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
1=1
00001128477700123499900 CPT051P120050230000001000001 26
P10699222360
MR TINTIN
Rue MILOU
92000 HADOCK
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Merci
Finalement j'ai fait un programme qui fonctionne avec ton exemple.
Il devrait y avoir peu de choses à modifier si cela ne fonctionne pas en
grandeur nature.
Je le mets en pièce jointe pour éviter les coupures de lignes intempestives.
Bonne vacances :-)
Dans le message:mn.620d7d57b78d7a76.33554@NOSPAMlaposte.net,
---DGI972--- écrit:
Fred a émis l'idée suivante :
Dans le message:mn.615b7d57e670dac1.33384@NOSPAMlaposte.net,
---DGI972--- écrit:
Fred a émis l'idée suivante :
Dans le message:mn.5cd37d57f4f685b8.33384@NOSPAMlaposte.net,
---DGI972--- écrit:
Dans son message mn.3cf87d5701f9e3ad.33384@NOSPAMlaposte.net
---DGI972--- nous dit :
[...]
Chaque page commence par 1=1
Ex: Mr TOTO a 2 pages et Mr TINTIN 1 seul page.
1=1
Là, je ne sais pas si la ligne est complétée avec des blancs dans le fichier
original
Il faudra peut-être modifier le test suivant dans le programme :
8<-----------
If Instr(sLine, "1=1") = 1 And Len(sLine) = 3 Then
8<------------
00001128477700122477700 CPT051P120050220000001000001 26
P10676222260
MR TOTO
Rue TATA
91000 TITI
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
1=1
00001128477700122477700 CPT051P120050220000001000002 26
P10676222260
MR TOTO
Rue TATA
91000 TITI
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
1=1
00001128477700123499900 CPT051P120050230000001000001 26
P10699222360
MR TINTIN
Rue MILOU
92000 HADOCK
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Merci
Finalement j'ai fait un programme qui fonctionne avec ton exemple.
Il devrait y avoir peu de choses à modifier si cela ne fonctionne pas en
grandeur nature.
Je le mets en pièce jointe pour éviter les coupures de lignes intempestives.
Bonne vacances :-)
Dans le message:,
---DGI972--- écrit:Fred a émis l'idée suivante :Dans le message:,
---DGI972--- écrit:Fred a émis l'idée suivante :Dans le message:,
---DGI972--- écrit:Dans son message
---DGI972--- nous dit :
[...]
Chaque page commence par 1=1
Ex: Mr TOTO a 2 pages et Mr TINTIN 1 seul page.
1=1
Là, je ne sais pas si la ligne est complétée avec des blancs dans le fichier
original
Il faudra peut-être modifier le test suivant dans le programme :
8<-----------
If Instr(sLine, "1=1") = 1 And Len(sLine) = 3 Then
8<------------00001128477700122477700 CPT051P120050220000001000001 26
P10676222260
MR TOTO
Rue TATA
91000 TITI
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
1=1
00001128477700122477700 CPT051P120050220000001000002 26
P10676222260
MR TOTO
Rue TATA
91000 TITI
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
1=1
00001128477700123499900 CPT051P120050230000001000001 26
P10699222360
MR TINTIN
Rue MILOU
92000 HADOCK
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Merci
Finalement j'ai fait un programme qui fonctionne avec ton exemple.
Il devrait y avoir peu de choses à modifier si cela ne fonctionne pas en
grandeur nature.
Je le mets en pièce jointe pour éviter les coupures de lignes intempestives.
Bonne vacances :-)
Fred a présenté l'énoncé suivant :Dans le message:,
---DGI972--- écrit:Fred a émis l'idée suivante :Dans le message:,
---DGI972--- écrit:Fred a émis l'idée suivante :Dans le message:,
---DGI972--- écrit:Dans son message
---DGI972--- nous dit :
[...]
Chaque page commence par 1=1
Ex: Mr TOTO a 2 pages et Mr TINTIN 1 seul page.
1=1
Là, je ne sais pas si la ligne est complétée avec des blancs dans le
fichier original
Il faudra peut-être modifier le test suivant dans le programme :
8<-----------
If Instr(sLine, "1=1") = 1 And Len(sLine) = 3 Then
8<------------00001128477700122477700 CPT051P120050220000001000001 26
P10676222260
MR TOTO
Rue TATA
91000 TITI
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
1=1
00001128477700122477700 CPT051P120050220000001000002 26
P10676222260
MR TOTO
Rue TATA
91000 TITI
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
1=1
00001128477700123499900 CPT051P120050230000001000001 26
P10699222360
MR TINTIN
Rue MILOU
92000 HADOCK
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Merci
Finalement j'ai fait un programme qui fonctionne avec ton exemple.
Il devrait y avoir peu de choses à modifier si cela ne fonctionne pas en
grandeur nature.
Je le mets en pièce jointe pour éviter les coupures de lignes
intempestives.
Bonne vacances :-)
Fred,
Un grand, trés grand merci
C'est exactement ce que je voulais.
merci
Fred a présenté l'énoncé suivant :
Dans le message:mn.620d7d57b78d7a76.33554@NOSPAMlaposte.net,
---DGI972--- écrit:
Fred a émis l'idée suivante :
Dans le message:mn.615b7d57e670dac1.33384@NOSPAMlaposte.net,
---DGI972--- écrit:
Fred a émis l'idée suivante :
Dans le message:mn.5cd37d57f4f685b8.33384@NOSPAMlaposte.net,
---DGI972--- écrit:
Dans son message mn.3cf87d5701f9e3ad.33384@NOSPAMlaposte.net
---DGI972--- nous dit :
[...]
Chaque page commence par 1=1
Ex: Mr TOTO a 2 pages et Mr TINTIN 1 seul page.
1=1
Là, je ne sais pas si la ligne est complétée avec des blancs dans le
fichier original
Il faudra peut-être modifier le test suivant dans le programme :
8<-----------
If Instr(sLine, "1=1") = 1 And Len(sLine) = 3 Then
8<------------
00001128477700122477700 CPT051P120050220000001000001 26
P10676222260
MR TOTO
Rue TATA
91000 TITI
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
1=1
00001128477700122477700 CPT051P120050220000001000002 26
P10676222260
MR TOTO
Rue TATA
91000 TITI
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
1=1
00001128477700123499900 CPT051P120050230000001000001 26
P10699222360
MR TINTIN
Rue MILOU
92000 HADOCK
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Merci
Finalement j'ai fait un programme qui fonctionne avec ton exemple.
Il devrait y avoir peu de choses à modifier si cela ne fonctionne pas en
grandeur nature.
Je le mets en pièce jointe pour éviter les coupures de lignes
intempestives.
Bonne vacances :-)
Fred,
Un grand, trés grand merci
C'est exactement ce que je voulais.
merci
Fred a présenté l'énoncé suivant :Dans le message:,
---DGI972--- écrit:Fred a émis l'idée suivante :Dans le message:,
---DGI972--- écrit:Fred a émis l'idée suivante :Dans le message:,
---DGI972--- écrit:Dans son message
---DGI972--- nous dit :
[...]
Chaque page commence par 1=1
Ex: Mr TOTO a 2 pages et Mr TINTIN 1 seul page.
1=1
Là, je ne sais pas si la ligne est complétée avec des blancs dans le
fichier original
Il faudra peut-être modifier le test suivant dans le programme :
8<-----------
If Instr(sLine, "1=1") = 1 And Len(sLine) = 3 Then
8<------------00001128477700122477700 CPT051P120050220000001000001 26
P10676222260
MR TOTO
Rue TATA
91000 TITI
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
1=1
00001128477700122477700 CPT051P120050220000001000002 26
P10676222260
MR TOTO
Rue TATA
91000 TITI
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
1=1
00001128477700123499900 CPT051P120050230000001000001 26
P10699222360
MR TINTIN
Rue MILOU
92000 HADOCK
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Merci
Finalement j'ai fait un programme qui fonctionne avec ton exemple.
Il devrait y avoir peu de choses à modifier si cela ne fonctionne pas en
grandeur nature.
Je le mets en pièce jointe pour éviter les coupures de lignes
intempestives.
Bonne vacances :-)
Fred,
Un grand, trés grand merci
C'est exactement ce que je voulais.
merci
Fred,
Un grand, trés grand merci
C'est exactement ce que je voulais.
merci
Je pousse le bouchon plus loin:
Un trie par code postal Position 75 lg 5 dans la ligne qui commence
par "00001" est ce possible même dans chaque fichier de sortie SGEDGP1
SGEDGP2 etc ???
Je sais trier d'aprés une extraction de zone mais uniquement ligne
par ligne et à condition que les lignes soient de structures
identiques ( Bref pas dans le cas présent ).
Je suis en vacances à partir de Vendredi et pas de Scripting en vue,
vue que vous m'avez déjà tout fait.
Encore bravo, je reste fasciné par la puissance du VbScript avec 20
lignes de code (et surtout le savoir faire William Saurin).
Gilles
Fred,
Un grand, trés grand merci
C'est exactement ce que je voulais.
merci
Je pousse le bouchon plus loin:
Un trie par code postal Position 75 lg 5 dans la ligne qui commence
par "00001" est ce possible même dans chaque fichier de sortie SGEDGP1
SGEDGP2 etc ???
Je sais trier d'aprés une extraction de zone mais uniquement ligne
par ligne et à condition que les lignes soient de structures
identiques ( Bref pas dans le cas présent ).
Je suis en vacances à partir de Vendredi et pas de Scripting en vue,
vue que vous m'avez déjà tout fait.
Encore bravo, je reste fasciné par la puissance du VbScript avec 20
lignes de code (et surtout le savoir faire William Saurin).
Gilles
Fred,
Un grand, trés grand merci
C'est exactement ce que je voulais.
merci
Je pousse le bouchon plus loin:
Un trie par code postal Position 75 lg 5 dans la ligne qui commence
par "00001" est ce possible même dans chaque fichier de sortie SGEDGP1
SGEDGP2 etc ???
Je sais trier d'aprés une extraction de zone mais uniquement ligne
par ligne et à condition que les lignes soient de structures
identiques ( Bref pas dans le cas présent ).
Je suis en vacances à partir de Vendredi et pas de Scripting en vue,
vue que vous m'avez déjà tout fait.
Encore bravo, je reste fasciné par la puissance du VbScript avec 20
lignes de code (et surtout le savoir faire William Saurin).
Gilles
Dans son message
---DGI972--- nous dit :
[...]
Fred,
Un grand, trés grand merci
C'est exactement ce que je voulais.
merci
Je pousse le bouchon plus loin:
Un trie par code postal Position 75 lg 5 dans la ligne qui commence
par "00001" est ce possible même dans chaque fichier de sortie SGEDGP1
SGEDGP2 etc ???
Je sais trier d'aprés une extraction de zone mais uniquement ligne
par ligne et à condition que les lignes soient de structures
identiques ( Bref pas dans le cas présent ).
Je suis en vacances à partir de Vendredi et pas de Scripting en vue,
vue que vous m'avez déjà tout fait.
Encore bravo, je reste fasciné par la puissance du VbScript avec 20
lignes de code (et surtout le savoir faire William Saurin).
Gilles
Bonjour,
Là cela se corse un peu tout de même !
Je pense que cela est faisable complètement en vbs, mais je doute qu'on
puisse l'écrire en 20 lignes cette fois.
Je te propose une autre idée, peut-être un peu capilotractée, mais qui
devrait fonctionner.
Dans l'algorithme, à un moment donné, on ajoute le fichier temporaire à un
autre fichier en fonction du nombre de pages.
A la place, je te propose d'enregistrer ce même fichier temporaire avec un
nom bien formaté, présentant toutes tes clés de tri dans l'ordre (je me
méfie, que vas-tu demander après les codes postaux :-D ?)
En fait, et plus clairement, chaque client aura son fichier avec un nom du
style : SGEDGPn_cccccc_xxxxx etc ...
où n est le nombre de pages, cccccc le code postal et xxxxxx une autre info
rendant unique le fichier (un code client peut-être ?)
Il faut simplement dans le programme, que tu ajoutes les variables qui
récupèrent le code postal et xxxxxx
Ensuite, les commandes :
DIR SGEDGP1* /B > Fichiers1page.txt
DIR SGEDGP2* /B > Fichiers2pages.txt
...
Vont te créer des fichiers qui contiennent les noms des fichiers client par
ordre alphabétique (donc par codes postaux). A toi de les relire et de les
concaténer pour créer SGEDGP1, SGEDGP2, etc ....
Tu peux aussi utiliser la commande
DIR SGEDGP* /B > TousLesFichiers.txt
Dans la liste tu auras d'abord les clients à 1 page, puis les clients à 2
pages, etc ...
Voilà, tu devrais pouvoir mettre cela en place.
1 - modification du programme actuel
2 - écriture d'un autre petit programme pour remettre bout à bout tous les
fichiers client.
Je te laisse chercher un peu avant d'écrire quelque chose ? ;-)
A plus tard.
Dans son message mn.64667d57a574a3fc.33384@NOSPAMlaposte.net
---DGI972--- nous dit :
[...]
Fred,
Un grand, trés grand merci
C'est exactement ce que je voulais.
merci
Je pousse le bouchon plus loin:
Un trie par code postal Position 75 lg 5 dans la ligne qui commence
par "00001" est ce possible même dans chaque fichier de sortie SGEDGP1
SGEDGP2 etc ???
Je sais trier d'aprés une extraction de zone mais uniquement ligne
par ligne et à condition que les lignes soient de structures
identiques ( Bref pas dans le cas présent ).
Je suis en vacances à partir de Vendredi et pas de Scripting en vue,
vue que vous m'avez déjà tout fait.
Encore bravo, je reste fasciné par la puissance du VbScript avec 20
lignes de code (et surtout le savoir faire William Saurin).
Gilles
Bonjour,
Là cela se corse un peu tout de même !
Je pense que cela est faisable complètement en vbs, mais je doute qu'on
puisse l'écrire en 20 lignes cette fois.
Je te propose une autre idée, peut-être un peu capilotractée, mais qui
devrait fonctionner.
Dans l'algorithme, à un moment donné, on ajoute le fichier temporaire à un
autre fichier en fonction du nombre de pages.
A la place, je te propose d'enregistrer ce même fichier temporaire avec un
nom bien formaté, présentant toutes tes clés de tri dans l'ordre (je me
méfie, que vas-tu demander après les codes postaux :-D ?)
En fait, et plus clairement, chaque client aura son fichier avec un nom du
style : SGEDGPn_cccccc_xxxxx etc ...
où n est le nombre de pages, cccccc le code postal et xxxxxx une autre info
rendant unique le fichier (un code client peut-être ?)
Il faut simplement dans le programme, que tu ajoutes les variables qui
récupèrent le code postal et xxxxxx
Ensuite, les commandes :
DIR SGEDGP1* /B > Fichiers1page.txt
DIR SGEDGP2* /B > Fichiers2pages.txt
...
Vont te créer des fichiers qui contiennent les noms des fichiers client par
ordre alphabétique (donc par codes postaux). A toi de les relire et de les
concaténer pour créer SGEDGP1, SGEDGP2, etc ....
Tu peux aussi utiliser la commande
DIR SGEDGP* /B > TousLesFichiers.txt
Dans la liste tu auras d'abord les clients à 1 page, puis les clients à 2
pages, etc ...
Voilà, tu devrais pouvoir mettre cela en place.
1 - modification du programme actuel
2 - écriture d'un autre petit programme pour remettre bout à bout tous les
fichiers client.
Je te laisse chercher un peu avant d'écrire quelque chose ? ;-)
A plus tard.
Dans son message
---DGI972--- nous dit :
[...]
Fred,
Un grand, trés grand merci
C'est exactement ce que je voulais.
merci
Je pousse le bouchon plus loin:
Un trie par code postal Position 75 lg 5 dans la ligne qui commence
par "00001" est ce possible même dans chaque fichier de sortie SGEDGP1
SGEDGP2 etc ???
Je sais trier d'aprés une extraction de zone mais uniquement ligne
par ligne et à condition que les lignes soient de structures
identiques ( Bref pas dans le cas présent ).
Je suis en vacances à partir de Vendredi et pas de Scripting en vue,
vue que vous m'avez déjà tout fait.
Encore bravo, je reste fasciné par la puissance du VbScript avec 20
lignes de code (et surtout le savoir faire William Saurin).
Gilles
Bonjour,
Là cela se corse un peu tout de même !
Je pense que cela est faisable complètement en vbs, mais je doute qu'on
puisse l'écrire en 20 lignes cette fois.
Je te propose une autre idée, peut-être un peu capilotractée, mais qui
devrait fonctionner.
Dans l'algorithme, à un moment donné, on ajoute le fichier temporaire à un
autre fichier en fonction du nombre de pages.
A la place, je te propose d'enregistrer ce même fichier temporaire avec un
nom bien formaté, présentant toutes tes clés de tri dans l'ordre (je me
méfie, que vas-tu demander après les codes postaux :-D ?)
En fait, et plus clairement, chaque client aura son fichier avec un nom du
style : SGEDGPn_cccccc_xxxxx etc ...
où n est le nombre de pages, cccccc le code postal et xxxxxx une autre info
rendant unique le fichier (un code client peut-être ?)
Il faut simplement dans le programme, que tu ajoutes les variables qui
récupèrent le code postal et xxxxxx
Ensuite, les commandes :
DIR SGEDGP1* /B > Fichiers1page.txt
DIR SGEDGP2* /B > Fichiers2pages.txt
...
Vont te créer des fichiers qui contiennent les noms des fichiers client par
ordre alphabétique (donc par codes postaux). A toi de les relire et de les
concaténer pour créer SGEDGP1, SGEDGP2, etc ....
Tu peux aussi utiliser la commande
DIR SGEDGP* /B > TousLesFichiers.txt
Dans la liste tu auras d'abord les clients à 1 page, puis les clients à 2
pages, etc ...
Voilà, tu devrais pouvoir mettre cela en place.
1 - modification du programme actuel
2 - écriture d'un autre petit programme pour remettre bout à bout tous les
fichiers client.
Je te laisse chercher un peu avant d'écrire quelque chose ? ;-)
A plus tard.