[perl - debutante] fseek?

fseek? [perl - debutante] - Perl - Programmation

Marsh Posté le 22-05-2002 à 16:46:46    

open(FIC,"poeme.txt" )||die("pb d ouverture fichier d entree\n" );  
open(OUT,">motseneau.txt" )||print "probleme de fichier de sortie";
while(<FIC> ){
 @mots=split();
 foreach $i (0..$#mots){
  if($mots[$i]=~/eau/){
      print "$mots[$i]\n";
  }
 }
}
close(OUT);
close(FIC);

 
p'ti exo pipo, je sais mais je debute juste.  
Et si arrivee la, il me prend l envie de retourner au debut du fichier?, quelles sont les fonctions qui permettent de se ballader dans un fichier? existe t il un fseek pour PERL?

Reply

Marsh Posté le 22-05-2002 à 16:46:46   

Reply

Marsh Posté le 22-05-2002 à 17:05:29    

A ma connaissance il n'existe pas de fseek avec Perl mais il doit être possible de trouver un module d'extension en cherchant bien...
Sinon quand tu as un fichier texte pas trop gros tu peux le charger dans un tableau et ensuite te promener dans le tableau.
Du style :
open(FIC,"fic.txt" );
@tableau = <FIC>;
Ensuite la première ligne se trouve dans $tableau[0] et ainsi de suite... C'est bourrin mais ça marche...

Reply

Marsh Posté le 22-05-2002 à 17:15:56    

en bourrin g aussi : je close et reouvre...
pas tres elegant.

Reply

Marsh Posté le 22-05-2002 à 17:29:10    

Bon g dit une connerie... ;)
Il existe une fonction seek :
"seek HANDLEFICHIER, POSITION, DEPART"
 
Pour DEPART c'est 0=début du fichier, 1=position courante, 2=fin du fichier.
POSITION représente le déplacement en octets par rapport à DEPART.
Donc retour au début = seek FIC, 0, 0

Reply

Marsh Posté le 23-05-2002 à 08:51:25    

merci bp, je cours essayer ca

Reply

Marsh Posté le 23-05-2002 à 09:36:10    

Alors ça marche ? Parce que j'ai jamais essayé en fait... ;)

Reply

Marsh Posté le 23-05-2002 à 09:50:31    

impec oui. merci bp  :jap:  :jap:  
je m attaque a la comprehension approfondie des expreg,  t eloignes pas trop je sens que je risque de pas tout comprendre du premier coup  ;)

Reply

Marsh Posté le 23-05-2002 à 11:01:26    

prettysmile a écrit a écrit :

impec oui. merci bp  :jap:  :jap:  
je m attaque a la comprehension approfondie des expreg,  t eloignes pas trop je sens que je risque de pas tout comprendre du premier coup  ;)  



On dit regex quand on est un pro. :D ;) :hello:


---------------
Le site de ma maman
Reply

Marsh Posté le 23-05-2002 à 11:13:04    

toi t as pas voulu m aider alors...  :kaola: (tu connais PERL?, tu ne me l avais pas dit)  
et quand on est un pro on utilise rowspan ( ;)  )

Reply

Marsh Posté le 23-05-2002 à 11:16:15    

Putain, c'est pas fini s't'affaire de rowspan, j'ai l'air de quoi moi maintenant !!! Et puis tu le savais non plus que mon code était mauvais. On a appris pareil.
 
Quand aux regex, c'est générique dans les langages communautaires, comme Perl et PHP, donc c'est de PHP que me vient l'expression (régulière) regex, de plus j'avais essayé Perl l'an dernier mais je sais plus faire.


---------------
Le site de ma maman
Reply

Marsh Posté le 23-05-2002 à 11:16:15   

Reply

Marsh Posté le 23-05-2002 à 11:26:53    

Citation :

j'avais essayé Perl l'an dernier mais je sais plus faire


 
la tu me decoit

Reply

Marsh Posté le 23-05-2002 à 11:27:29    

prettysmile a écrit a écrit :

Citation :

j'avais essayé Perl l'an dernier mais je sais plus faire


 
la tu me decoit  



J'avais fait un HelloWorld pendant le cours de C de Ernst. C'est juste un test quoi.


---------------
Le site de ma maman
Reply

Marsh Posté le 23-05-2002 à 11:30:06    

en en parlant, si tu le croises fais lui la bise
print "bisous monsieur nernst";

Reply

Marsh Posté le 23-05-2002 à 11:31:13    

OK, je n'y manquerai pas (il va pas comprendre :??:). Je descends au service logement, @+


---------------
Le site de ma maman
Reply

Marsh Posté le 29-05-2002 à 11:39:10    

et y a un equivalent de switch/case?

Reply

Marsh Posté le 29-05-2002 à 14:18:20    

prettysmile a écrit a écrit :

et y a un equivalent de switch/case?  



non, pas d'équivalent en Perl
 
Mais bon, avec une série de if, elsif, else, tu t'en sort tout aussi bien
 
Et c pas plus illisible qu'un gros switch case


---------------
Samsung Galaxy S1 -> Samsung Galaxy S2 -> Samsung Note 2 -> Huawei Ascend Mate 7 -> ZTE Axon 7 -> OnePlus 6T -> Oppo Find X2 PRO
Reply

Marsh Posté le 29-05-2002 à 14:18:43    

ok merci

Reply

Marsh Posté le 29-05-2002 à 14:19:19    

D'autant que dans certains cas, j'utilise un hash pour parvenir à mes fins, c'est bcp plus rapide qu'un test à plusieurs choix


---------------
Samsung Galaxy S1 -> Samsung Galaxy S2 -> Samsung Note 2 -> Huawei Ascend Mate 7 -> ZTE Axon 7 -> OnePlus 6T -> Oppo Find X2 PRO
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed