Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1470 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Lire un fichier a l'envers

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Lire un fichier a l'envers

n°1546224
WiiDS
20 titres en GC, 0 abandon, 0 DQ
Posté le 21-04-2007 à 14:00:12  profilanswer
 

:hello:

 

Dans le cadre de mon projet je dois lire un fichier a l'envers (sic).

 

Seulement a part faire un code moisi du genre :

 
Citation :


$fichier='fichier.txt';
$offsetLecture=filesize($fichier)-1;
$ouvFichier=fopen($fichier,'r');
while($offsetLecture!=0) {
rewind($ouvFichier);
fseek($ouvFichier,$offsetLecture);
$octetLu=fread($ouvFichier,1);
$offsetLecture--;
}

 

Je ne vois pas de solutions :/

 

Y'aurait-il un moyen (plus) simple de lire un fichier a l'envers ? Merci :jap:

 

EDIT : Pour compléter la question j'expose mon problème réel :

 

Je fais un convertisseur de sauvegardes, je me retrouve avec un fichier de 262,144 octets dont 95% du fichier est du vide (FF FF FF FF FF ...). Or pour convertir ce fichier en un autre format, je me dois de faire péter ce vide. Si je lis le fichier du début a la fin et que je vérifie la présence de FF, je risque d'avoir un fichier corrompu car la sauvegarde peut contenir d'elle même un FF hors du vide qui sert a compléter le fichier. La meilleur solution a mes yeux est donc de lire le fichier de la fin au début, et si un caractère diffère de FF, je prends la position du caractère et je tronque le fichier du début a la position de ce caractère qui serait donc le dernier octet avant le remplissage par vide

 

Je ne sais pas si vous avez compris mais spagrave :D


Message édité par WiiDS le 21-04-2007 à 14:44:07
mood
Publicité
Posté le 21-04-2007 à 14:00:12  profilanswer
 

n°1546352
WiiDS
20 titres en GC, 0 abandon, 0 DQ
Posté le 21-04-2007 à 18:56:13  profilanswer
 

Plop :o

n°1546401
Shinuza
This is unexecpected
Posté le 21-04-2007 à 20:17:37  profilanswer
 

Code :
  1. <?php
  2.     $in = file_get_contents('lorem.txt');
  3.     echo strrev($in);
  4. ?>


 
:??:


---------------
Mains power can kill, and it will hurt the entire time you’re dying from it.
n°1546420
supermofo
Hello World !
Posté le 21-04-2007 à 21:17:05  profilanswer
 

Non bah non t as deja parcouru le fichier de haut en bas la.

 

Edit: En meme c une question typique d'un abruti de prof. Donc ca merite meme pas d'y passer plus de 2 sec.

Message cité 1 fois
Message édité par supermofo le 21-04-2007 à 21:18:26
n°1546426
WiiDS
20 titres en GC, 0 abandon, 0 DQ
Posté le 21-04-2007 à 22:04:53  profilanswer
 

supermofo a écrit :

Edit: En meme c une question typique d'un abruti de prof. Donc ca merite meme pas d'y passer plus de 2 sec.


Pardon ? :heink:  
 
Ce n'est pas une attaque "d'abruti de prof" comme tu dirais mais simplement j'en ai besoin afin d'achever mon projet parce que OUI le langage de programmation php ne se limite pas a mambo ! :sarcastic:  
 
Si t'es pas content, casse toi. :pfff:

n°1546459
WiiDS
20 titres en GC, 0 abandon, 0 DQ
Posté le 21-04-2007 à 23:34:21  profilanswer
 

Shinuza a écrit :

Code :
  1. <?php
  2.     $in = file_get_contents('lorem.txt');
  3.     echo strrev($in);
  4. ?>


 
:??:


Merci beaucoup, exactement la commande que je recherchais :love:

n°1546761
supermofo
Hello World !
Posté le 22-04-2007 à 21:24:05  profilanswer
 

WiiDS a écrit :

Pardon ?  :heink:  

 

Ce n'est pas une attaque "d'abruti de prof" comme tu dirais mais simplement j'en ai besoin afin d'achever mon projet parce que OUI le langage de programmation php ne se limite pas a mambo !  :sarcastic:  

 

Si t'es pas content, casse toi.  :pfff:

 

 

Mambo est une tres belle application. Puis je maintient mes propos, et je sors.

n°1546796
NewsletTux
&lt;Insérez ici votre vie /&gt;
Posté le 22-04-2007 à 22:30:56  profilanswer
 

si ton fichier est un texte, tu peux le splitter avec le retour chariot ...
 

Code :
  1. $fichier='fichier.txt';
  2. $array_file_content = array();
  3. $file_content = '';
  4. // le fichier
  5. $handle = @fopen("/tmp/inputfile.txt", "r" );
  6. // lecture & copie dans une variable
  7. if ($handle) {
  8.    while (!feof($handle)) {
  9.       $file_content .= fgets($handle, 4096);
  10.    }
  11.    fclose($handle);
  12. }
  13. // explosion en tableau
  14. $array_file_content = explode("\n",$file_content);
  15. // lecture du tableau à l'envers
  16. $nb_lines = count($array_file_content); // nombre de lignes
  17. for ($ptr = $nb_lines; $ptr >=0; $ptr--)
  18. {
  19.   echo $array_file_content[$ptr];
  20. }
  21. ?>


 
NB : tu peux être amené à remplacer \n par \r\n selon ton système (je crois que les mac font un retour chariot en \r\n). Et cette méthode peut être pratique si tu as un fichier pas trop long, et que tu ne l'exécutes pas en boucle 500 mille fois de suite^^

n°1547619
WiiDS
20 titres en GC, 0 abandon, 0 DQ
Posté le 23-04-2007 à 20:38:52  profilanswer
 

Merci mais je vais rester sur strrev plus rapide :D


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Lire un fichier a l'envers

 

Sujets relatifs
Accès fichier sur serveur distant[VBA] Ouverture fichier avec boite dialogue
Ouverture de fichier avec macros, sans confirmation (par certificat ?)[Bash] choisir une ligne d'un fichier avec une boucle select
[débutant] retrouver la ligne courante du fichier[c] Récupération de fichier partagé sur un réseau
Proposer un fichier au téléchargementHTML et Java : lire une liste de MP3 à la suite les uns des autres.
[Ksh] inverser un fichier pour le lire à l'envers[perl] lire un fichier à l'envers
Plus de sujets relatifs à : Lire un fichier a l'envers


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR