Salut a tous
je suis debutant donc je me permets de poster pour poser un question.
Voila, j'ai un fichier ascii qui contient des registres.
Chaque registre possede un nombre variable de lignes, selon les infos qu'il contient. Par contre ils sont separes par un CODE "LDR" qui est toujours le meme et creer toujours de la meme maniere:
Voici un extrait du fichier:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
000000001 LDR   L -----nam--2200301Ia-45e0
000000001 00809 L 1220s9999    xx            000 0 und d
000000001 022   L $$a0081-3397
000000001 041   L $$aESPA�OL
000000001 042   L $$a1
000000001 088   L $$aJ.E.N. 551
000000001 100   L $$aROMERO,-L.;TRAVESI,-A.;
000000001 245   L $$aCODIGO "REX" PARA AJUSTE DE DATOS EXPERIMENTALES A FUNCIONES EXPONENCIALES Y SU REPRESENTACION GRAFICA
000000001 901   L $$aJUNTA DE ENERGIA NUCLEAR (J.E.N.)
000000001 902   L $$a11/05/89
000000001 910   L $$aINFORMES JEN
000000001 FMT   L BK
000000002 LDR   L -----nam--2200301Ia-45e0
000000002 00809 L 1220s9999    xx            000 0 und d
000000002 022   L $$a0081-3397
000000002 041   L $$aESPA�OL
Comme vous pouves le voir, le registre commence par LDR et temine par FMT, les bornes en somme...
Ensuite vous voyez que les registres ont leur numero d'ordre 0000001 0000000n et apres le code du champs.

Mon but c'est de lire le fichier en entier et pour chaque registre, detecter certains champs, tester le contenu et en fonction du contenu, mettre une valeur dans une variable:

ex:
si j'ai ceci:
000000002 041 L $$aESPA�OL
donc le 041 comme valeur español, je voudrais que ma variale LNG soit = a 'spa'
et comme ca avec 2 ou 3 autres champs,
a la fin je voudrais creer un autre champs qui n'existe pas qui a une structure speciale avec les variables concatenees.

Je sais pas si je m'explique bien....

si j'ai ceci:
000000001 590 L $$aINFORME
$lettre='t'

000000002 041 L $$aESPA�OL
$lng='spa'
et a la fin je voudrais avoir un champs comme ceci

008 1023002\\\\\\\\t\\\\\\\spa
donc le 008 el le num c'est fixe
ensuite le t sort seulement si 590=INFORME et spa si 041 = español

voili voilou

J'espere que vous pourrez m'aider

D'avance merci