lire un fichier en commençant par la fin [résolu]

lire un fichier en commençant par la fin [résolu] - Perl - Programmation

Marsh Posté le 28-02-2003 à 10:40:14    

est-ce que c possible??


Message édité par arghbis le 01-03-2003 à 17:01:19
Reply

Marsh Posté le 28-02-2003 à 10:40:14   

Reply

Marsh Posté le 28-02-2003 à 14:53:14    

vous savez pas ou alors c pas possible????
 
 
 [:kecje]

Reply

Marsh Posté le 28-02-2003 à 14:58:51    

man tac  (enfin ça c'est pour le script bash :D )


Message édité par dsls le 28-02-2003 à 15:00:24
Reply

Marsh Posté le 28-02-2003 à 15:24:44    

en perl:

Code :
  1. use strict;
  2. open(IN, "a.txt" ) or die "...";
  3. my @lignes = <IN>;
  4. while (my $ligne = pop @lignes) {
  5.     print $ligne;
  6. }
  7. close(IN);


Message édité par pospos le 28-02-2003 à 15:25:14
Reply

Marsh Posté le 28-02-2003 à 15:30:20    

non, tu ne lis pas depuis la fin du fichier!! tu lit le fichier, puis tu parcours le tableau qui le contient à l'envers!!
je fais déjà ça, mais c pas optimal!

Reply

Marsh Posté le 28-02-2003 à 15:30:20    

Ou bien encore :

Code :
  1. use strict;
  2. open(IN, "a.txt" ) or die "...";
  3. my @lignes = <IN>;
  4. foreach(reverse(@lignes)) {
  5.     print $_;
  6. }
  7. close(IN);



---------------
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 28-02-2003 à 15:31:43    

arghbis a écrit :

non, tu ne lis pas depuis la fin du fichier!! tu lit le fichier, puis tu parcours le tableau qui le contient à l'envers!!
je fais déjà ça, mais c pas optimal!

arf, bon ben oublie mon truc alors :sweat:
 
c'est clair que c'est pas optimal de charger tout un fichier dans un tableau mais bon ... je vois pas d'autre solution


---------------
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 28-02-2003 à 22:41:32    

et ca ca marche pas ?
 

Code :
  1. for ($#tab..0) {
  2.       print "$tab[$_]"
  3. }

Reply

Marsh Posté le 01-03-2003 à 10:02:22    

mais bien sûr que si, ça marche!! c la même solution que précédemment énnoncée!!
pour faire ça, il faut au préalable que tu ais rempli $tab avec les lignes du fichiers! et c pas du tout optimal dans mon cas!!
 
imagines que tu cherches la dernière occurence d'un mot dans un texte de 100000000 pages (c énormes, mais c pour l'exemple). Si tu dois te taper toute la lecture du fichier pour trouver cette dernière occurrence, c n'importe quoi!! c pour ça que je me demande s'il n'existe pas une fonction qui permet d'ouvrir un fichier en lecture, mais depuis la fin du fichier!!
 
dans mon cas, le fichier fait jusqu'à 3Mo (c pas bcp, mais il est ouvert toutes les 3 secondes!!) et ça m'arrangerais bien de pouvoir le lire depuis la fin!!
 
enfin, merci qd même pour votre aide!!  [:spikler]

Reply

Marsh Posté le 01-03-2003 à 16:20:17    

bon je crois que j'ai ton bonheur:
 
http://search.cpan.org/author/URI/ [...] ckwards.pm
 
voilou
a+

Reply

Marsh Posté le 01-03-2003 à 16:20:17   

Reply

Marsh Posté le 01-03-2003 à 17:00:56    

[:spikler]  vu le source du package, je pense que ça fait ce que je veux!!
 
j'aurais dû penser à regarder chez CPAN, mais à mon avis, c une fonction qui devrait être de base dans le système de filehandle perl!! enfin bon, c cool, ça fait ce que je veux!!
 
encore merci

Reply

Sujets relatifs:

Leave a Replay

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