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

  FORUM HardWare.fr
  Programmation
  PHP

  Comparer des fichiers

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Comparer des fichiers

n°1341696
thenab
Fait po chier...
Posté le 07-04-2006 à 17:30:16  profilanswer
 

Bonjour,
 
Voilà, j'ai besoin de classer l'affichage de mes fichiers dans une page par ordre décroissant, et pour celà, j'utilise une fonction :
 

Code :
  1. function compare($a){
  2.   $arrA = substr("$a", 0, 4);
  3.   if ( $arrA[0] > $arrA[1])
  4.     return -1;
  5.   else if ( $arrA[0] == $arrA[1])
  6.   if ( $arrA[0] < $arrA[1])
  7.     return 0;
  8.     return 1;
  9. rsort($tFichiers,"compare" );


 
$tFichiers étant le tableau où se trouve les fichiers présents dans un répertoire spécifique.
 
Les fichiers ont tous comme début la date et c'est ce à quoi je veux me fier pour les classer.
 
En gros :
 
- 0512-toto.txt
- 0601-toto.txt
- 0602-toto.txt
- etc...
 
Alors ça fonctionne mal... pour le moment, ça me classe pas tout dans l'ordre... quelqu'un pourrait m'aider ?
 
Merci d'avance.


Message édité par thenab le 07-04-2006 à 17:31:18

---------------
Thenab - Quitte à passer pour un con, passe vite !
mood
Publicité
Posté le 07-04-2006 à 17:30:16  profilanswer
 

n°1341777
Woutcha
Posté le 07-04-2006 à 20:53:33  profilanswer
 

Si tu lis la doc pour rsort :bool rsort ( array &array [, int sort_flags] ), tu te rends compte que cette fonction n'accepte pas de callback en second parametre...
 
La fonction interpretre ta chaine "compare" comme un entier de valeur 0 qui correspond au flag SORT_REGULAR.
 
Tu fais donc tout simplement l'equivalent d'un rsort($tFichiers).
 
 
 

n°1342129
newneo2001
Posté le 08-04-2006 à 16:44:46  profilanswer
 

si tes fichiers ont tous le même nom cad (-toto.txt)
 
je dirais que c'est tres facile.
 
tu boucle sur ton dossier en récupérant que la valeur en utilisant
intval($filename)
 
tu mets tt ses valeurs dan un tableau que tu tries ensuite ac rsort
 
et là tu reconstruits ton nom de fichier
$val.'-toto.txt';
 
je sais pas si je suis très clair. tien nous au courant


---------------
N'oubliez pas de mettre [RESOLU] dans le titre quand c'est fini - Pour poster vos sources : http://paste.clicksources.com/
n°1342147
Woutcha
Posté le 08-04-2006 à 18:46:19  profilanswer
 

Petite implementation pour la solution donne par newneo2001.
 

Code :
  1. $tFichier = array_combine($tFichiers, $tFichiers); // on cree un tableau associatif nom_fichier=>nom_fichier
  2. function key_to_intval($val, &$key) {
  3.     $key = intval($key);
  4. }
  5. array_walk($tFichier , 'key_to_intval'); // on "cast" toute les clefs du tableau en int
  6. krsort($tFichier , SORT_NUMERIC); // on fait un trie inverse sur les clefs du tableau
  7. foreach($tFichier as $key => $value) { // affichage des nom de fichiers  
  8.    print $value.'<BR>';
  9. }


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

  Comparer des fichiers

 

Sujets relatifs
script qui cherche des fichiers audio dans une clé usb[résolu] comparer un float à 1
Les fichiersComment transmettre des fichiers en XmlHttpRequest ? ? ?
comparer des fichiers XMLcomparer le contenu de deux fichiers
Utilitaire pour comparer des répertoires et des fichiers?Existe-il une commande Dos pour comparer 2 fichiers ?
[C++] Comparer 2 fichierscomparer le source de 2 fichiers
Plus de sujets relatifs à : Comparer des fichiers


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