: copie fichier1 vers fichier2 sauf le début [perl] - Perl - Programmation
Marsh Posté le 13-04-2006 à 15:03:35
tu conserves en permanence une copie des 3 lignes que tu viens de lire. Dès que tu vois "DISPLACEMENT", tu affiche ces trois lignes puis tu continues normalement à afficher les lignes restantes.
Marsh Posté le 13-04-2006 à 15:30:48
oui merci, mais en fait mon problème réside dans le fait que je ne sais pas comment copier ces 3 lignes à la base...
je ne sais lire que jusque le mot clé (DISPLACEMENT) TOUTES LES LIGNES qui le precedent, mais pas juste les 3 lignes d'avant...
Tu vois ?
Marsh Posté le 13-04-2006 à 15:35:33
#! /usr/freeware/bin/perl
use warnings;
use strict;
open TTXT ,"fichier1.txt" or die "E/S";
open NEW ,">nouveau.txt" or die "E/S";
while(<TTXT> ){
next unless (/D I S P L A C E M E N T V E C T O R/i../END OF JOB/i);
print NEW $_;
}
Poru le moment j'en suis là.
Mais les 3 lignes précédent le mot clé n'y sont pas.
Marsh Posté le 13-04-2006 à 16:07:09
tu as trois variables n_3, n_2, n_1 qui gardent les trois dernières lignes que tu as lues. dès que tu rencontres DISPLACEMENT, tu les affiche et tu continues à afficher les lignes suivantes.
demande moi si tu comprends pas ce script
Code :
|
Marsh Posté le 14-04-2006 à 23:39:07
Salut,
Code :
|
lami20j
Marsh Posté le 13-04-2006 à 14:47:06
Bonjour,
J'aimerais faire quelque chose sous perl:
Je lis un fichier texte, et je le copie dans un autre fichier texte dès que je trouve le mot "DISPLACEMENT" ainsi que les 3 lignes précédent ce mot.
C'est à dire que par exemple, si mon fichier de départ est:
llllll
kkkkk
lll
ooo
ppp
o
phdoj
230487130
DISPLACEMENT
etc....jusque fin de fichier
mon nouveau fichier est :
o
phdoj
230487130
DISPLACEMENT
etc....jusque fin de fichier
Voilà, j'ai déjà réussi à écrire dans le nouveau fichier à partir du mot DISPLACEMENT, mais je ne sais pas comment conserver les 3 lignes d'avant..
Qqn pourrait m'aider svp ?
merci.