Bonjour,
Je voudrais modifier un fichier qui a le format suivant :
WID2 2005/02/04 11:05: 0.055 BARC LHE XXX CM6 359989 100.000000 90.0 0.0
STA2 SEDZ 9.16300 -83.33600 WGS-84 0.375 0.000
DAT2
eV3tyDVAt-X2dFUOl+tCNZ8X0r-oBrNXTkQYDVDc+aOlMrTVJUIW9oQVKl8r0kPbPVFY5o4r9UGVHmPU
...
CHK2 59345435
WID2 2005/02/04 11:05: 0.055 BARC LHZ XXX CM6 359989 100.000000 -1.0 0.0
STA2 SEDZ 9.16300 -83.33600 WGS-84 0.375 0.000
DAT2
ilKymJPUEUOkGV3MURlOFIVLUQUOmDnImQW3Y8UQ9l9WHV1KUOnGoFl+l3UKY4X6GlDUTVSlBmKkQmBV
JUNkKX7X
...
CHK2 59345435
En gros, le header commence avec les lignes WID2, puis STA2 et DAT2 annonce l'arrivée des données. Les données se finissent par la ligne qui commence par CHK2. Et ainsi de suite.

Je voudrais modifier les lignes WID2 et STA2 en fonction de ce qu'elles contiennent. C'est à dire, par exemple, modifier XXX en fonction de ce que l'on ait LHE ou LHZ comme paramètre précédant.

Qu'elle technique me conseillez-vous? Ouvrir le fichier en lecture-écriture et faire les modifs au cours de la lecture? Ou mettre le fichier entier (qui est assez gros) dans une variable et utiliser les regex avec le paramètre s///g et écraser le fichier avec la nouvelle variable ainsi créée?

Merci d'avance