Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

boucle saut de ligne

16 réponses
Avatar
---DGI972---
Bonjour,

Je n'arrive pas a structurer ma boucle pour créer un fichier de sortie
comme je veux. J'aurais besoin d'un coup de pouce.
J'ai un fichier en entrée:

1
1MTVJ06000005 1 0MTV101CAB000
1MTVJ06000005 2 0MTV101CAB001
1MTVJ06000005 3 0MTV101CAB100
1MTVJ06000005 4 0MTV101ROD999
1MTVJ06000005 5 0MTV101DET102
1MTVJ06000005 6 0MTV101DET101
1MTVJ06000005 7 0MTV101DET191
1MTVJ06000005 8 0MTV101DET199
1
1MTVJ06000010 1 0MTV101CAB000
1MTVJ06000010 2 0MTV101CAB001
1MTVJ06000010 3 0MTV101CAB100
1MTVJ06000010 4 0MTV101ROD999
1MTVJ06000010 5 0MTV101DET102
1MTVJ06000010 6 0MTV101DET101
1MTVJ06000010 7 0MTV101DET101
1MTVJ06000010 8 0MTV101DET191
1MTVJ06000010 9 0MTV101DET199
1
1MTVJ06000016 1 0MTV101CAB000
1MTVJ06000016 2 0MTV101CAB001
1MTVJ06000016 3 0MTV101CAB100
1MTVJ06000016 4 0MTV101ROD999
1MTVJ06000016 5 0MTV101DET102
1MTVJ06000016 6 0MTV101DET101
1MTVJ06000016 7 0MTV101DET191
1MTVJ06000016 8 0MTV101DET199

et je voudrais en sortie

1
1MTVJ06000005 1 0MTV101CAB000

1MTVJ06000005 2 0MTV101CAB001

1MTVJ06000005 3 0MTV101CAB100

1MTVJ06000005 4 0MTV101ROD999

1MTVJ06000005 5 0MTV101DET102










1MTVJ06000005 6 0MTV101DET101










1MTVJ06000005 7 0MTV101DET191










1MTVJ06000005 8 0MTV101DET199
1
1MTVJ06000010 1 0MTV101CAB000

1MTVJ06000010 2 0MTV101CAB001

1MTVJ06000010 3 0MTV101CAB100

1MTVJ06000010 4 0MTV101ROD999

1MTVJ06000010 5 0MTV101DET102










1MTVJ06000010 6 0MTV101DET101
1MTVJ06000010 7 0MTV101DET101








1MTVJ06000010 8 0MTV101DET191

1MTVJ06000010 9 0MTV101DET199
1
1MTVJ06000016 1 0MTV101CAB000

1MTVJ06000016 2 0MTV101CAB001

1MTVJ06000016 3 0MTV101CAB100

1MTVJ06000016 4 0MTV101ROD999

1MTVJ06000016 5 0MTV101DET102
1MTVJ06000016 6 0MTV101DET102
1MTVJ06000016 6 0MTV101DET102







1MTVJ06000016 7 0MTV101DET191

1MTVJ06000016 8 0MTV101DET199

Je veux faire un saut de ligne lorsque que je vois des CAB et ROD en
position 29 lg 3 et dix sauts de ligne quand je vois des DET et des MSB
sauf que lorsqu'il y a n fois concécutif les DET101 ou DET102 ou DET103
ou DET191 et les MSG001 et MSG002 il ne faut pas les séparer par des
sauts de ligne entre eux mais après faire le complément de 10 sauts de
lignes (par ex: si 4 DET101 concécutifs et il faut 6 saut de lignes).

Voila mon début de code mais je ne trouve pas comment connaitre la
ligne d'avant ou d'après pour s'avoir si je fais les 10 sauts de ligne.

Set file1 = fso.OpenTextFile("D:\CABLE\_CABLE.txt")
Set file2 = fso.OpenTextFile("D:\CABLE\_CABLE2.txt",2, True)

Do Until file1.AtEndOfStream
SLine2 = file1.ReadLine

NOUV=Mid(SLine2,29,6)

if Mid(SLine2,29,3)="CAB" then Sline2=Sline2&vbcrlf

if Mid(SLine2,29,3)="ROD" then Sline2=Sline2&vbcrlf

if Mid(SLine2,29,6)="DET101" and ANC="DET101" then
Sline2=Sline2&vbcrlf&vbcrlf&vbcrlf&vbcrlf&vbcrlf&vbcrlf&vbcrlf&vbcrlf&vbcrlf&vbcrlf
if Mid(SLine2,29,6)="DET102" and ANC="DET102" then
Sline2=Sline2&vbcrlf&vbcrlf&vbcrlf&vbcrlf&vbcrlf&vbcrlf&vbcrlf&vbcrlf&vbcrlf&vbcrlf
if Mid(SLine2,29,6)="DET103" and ANC="DET103" then
Sline2=Sline2&vbcrlf&vbcrlf&vbcrlf&vbcrlf&vbcrlf&vbcrlf&vbcrlf&vbcrlf&vbcrlf&vbcrlf
if Mid(SLine2,29,6)="DET191" and ANC="DET191" then
Sline2=Sline2&vbcrlf&vbcrlf&vbcrlf&vbcrlf&vbcrlf&vbcrlf&vbcrlf&vbcrlf&vbcrlf&vbcrlf

if Mid(SLine2,29,6)="MSG001" and ANC="MSG001" then
Sline2=Sline2&vbcrlf&vbcrlf&vbcrlf&vbcrlf&vbcrlf&vbcrlf&vbcrlf&vbcrlf&vbcrlf&vbcrlf
if Mid(SLine2,29,6)="MSG002" and ANC="MSG002" then
Sline2=Sline2&vbcrlf&vbcrlf&vbcrlf&vbcrlf&vbcrlf&vbcrlf&vbcrlf&vbcrlf&vbcrlf&vbcrlf

file2.Writeline SLine2
ANC=NOUV
loop

fileOut.Close

Je sais qu'il manque la boucle pour le complément à 10 des sauts de
ligne mais je ne sais pas par quel bout la prendre aussi.

Un peu beaucoup perdu en fait ...

DGI972

6 réponses

1 2
Avatar
---DGI972---
Gilles LAURENT [MVP] a écrit :
"---DGI972---" <gilles.dermigny@*NO SPAM*laposte.net> a écrit dans le
message de
news:

Bonjour,

Pour des raisons de confidentialités j'ai tronqué le véritable
fichier. Et ce n'est que la partie visible de l'iceberg, je fais une
traitement avant et aprés le fait de faire 10 crlf selon les
différentes conditions.



Pour conserver les caractères accentués lors du traitement tout en
restant dans la même philosophie, c'est à dire en ligne de commande en
s'affranchissant du FSO, vous pouvez procéder de la manière suivante :

--- batch.cmd ---
@echo off
type dgi.txt | cscript //nologo codesnippet.vbs>dgi_temp.txt
cmd /u /c type dgi_temp.txt>dgi_out.txt
del dgi_temp.txt
--- batch.cmd ---

Note: Le fichier de sortie dgi_out.txt sera au format Unicode



Houla c'est de pire en pire ...

J'ai des caractères spéciaux hexa 20 00 qui sont insérés entre chaque
lettre.

Je ne veux pas m'affranchir du FSO.

Mais le cahier des charges a bougé entre temps je refais le ménage et
je referrais un nouveau fils sur ce newsgroupe.

Merci encore
Avatar
Gilles LAURENT [MVP]
"---DGI972---" <gilles.dermigny@*NO SPAM*laposte.net> a écrit dans le
message de
news:
| Houla c'est de pire en pire ...
|
| J'ai des caractères spéciaux hexa 20 00 qui sont insérés entre chaque
| lettre.

Ok ! Je passe la main !

Note: Merci de me fournir un extrait du fichier par messagerie.

--
Gilles LAURENT
MVP Windows Server - Admin Frameworks
http://glsft.free.fr
Avatar
jbongran
"Gilles LAURENT [MVP]" a écrit dans le message de
news:
"---DGI972---" <gilles.dermigny@*NO SPAM*laposte.net> a écrit dans le
message de
news:
| Bonjour,

Bonjour,

| J'ai une nouvelle condition a rajouter ...
[...]

Ci-dessous une version alternative à celle de Jérôme intégrant la
nouvelle condition. En espérant que cela répondra à votre besoin.


[...]

Très joli, et nettement plus court ;-)
Désolé d'avoir un peu déserté le newsgroup, mais c'était pour la bonne
cause: nouveau travail et beta de Windows 7
Avatar
jbongran
"---DGI972---" <gilles.dermigny@*NO SPAM*laposte.net> a écrit dans le
message de news:
[...]
AAHhhhhhhhh berk en cscript
Les accents sont mal convertis.
:'(



Voir le format utilisé dans les opentextfile (j'avait utilisé -2, à savoir
la valeur système par défaut)
http://msdn.microsoft.com/en-us/library/314cz14s(VS.85).aspx
Il se peut aussi que ce soit une conversion ANSI <=> ascii à faire, et pour
cela, il y le site du "maitre" Jean-Claude Bellamy:
http://www.bellamyjc.org/fr/vbsdownload.html#ansi2oem
et dans l'autre sens
http://www.bellamyjc.org/fr/vbsdownload.html#oem2ansi
Avatar
---DGI972---
jbongran a écrit :
"Gilles LAURENT [MVP]" a écrit dans le message de
news:
"---DGI972---" <gilles.dermigny@*NO SPAM*laposte.net> a écrit dans le
message de
news:
| Bonjour,

Bonjour,

| J'ai une nouvelle condition a rajouter ...
[...]

Ci-dessous une version alternative à celle de Jérôme intégrant la
nouvelle condition. En espérant que cela répondra à votre besoin.


[...]

Très joli, et nettement plus court ;-)
Désolé d'avoir un peu déserté le newsgroup, mais c'était pour la bonne cause:
nouveau travail et beta de Windows 7



Bonjour,

J'ai bricolé votre Vbs et j'ai réusi a faire un fichier de sortie comme
je le souhaite avec le nouveau cahier des charges ;-) .

Merci encore a vous et a gilles.
Avatar
Gilles LAURENT [MVP]
"jbongran" a écrit dans le message de
news:

Bonjour,

| Très joli, et nettement plus court ;-)

Merci pour cette appréciation ;-)

| Désolé d'avoir un peu déserté le newsgroup, mais c'était pour la bonne
| cause: nouveau travail et beta de Windows 7

Je vous souhaite une bonne réussite dans votre nouveau travail.

--
Gilles LAURENT
MVP Windows Server - Admin Frameworks
http://glsft.free.fr
1 2