lire un fichier????

Eléphant du PHP | 181 Messages

29 juin 2005, 10:58

bonjour,

j'ai un petit osucy de developpement.

je dois lire un fichier .txt pour recupere les repertoires et apres faire une boucle pour lire dans ses sous repertoires,qui ceux si aussi on un fichier txt, et ansi de suite pour arrive en bas de l'arboresence et comparer 2 fichier txt pour voir les versions.

le probleme c ke kan je lit le fichier et ke je met ceci dans un tableau. si je l'affiche a la fin du tableau il me met un espace. donc pour ma 2eme boucle pour lire les sous dossier je n'y arrive pas....

voici mon code:

Code : Tout sélectionner

<? $filename = 'h:\DATACD\#virtualCD/'; if (is_dir($filename)) { echo 'bien connecter au reseau'.'<br>'; } else { echo 'pas connecter au reseau'.'<br>'; } $filename2 = "c:\#virtualCD\virtual_laptop.txt"; if (file_exists($filename2)) { echo 'c\'est un laptop'.'<br><br>'; } else { echo 'c\'est pas possible'.'<br><br>'; } if ( (is_dir($filename)) && (file_exists($filename2)) ) { $fp=fopen('h:\DATACD\#virtualCD\manufacturer.txt','r'); $files_manuf = array(); $i = 0; while (!feof($fp)) { $texte=fgets($fp,1024); echo $texte."<br>\n"; // affiche la ligne en cours $files_manuf[$i] = $texte; $i++; } echo $files_manuf[1].'AAAAAAAA<br>'; // <-- c'est ici ke je fias le test d'affiche ki marche pas!!! $nbr = $i; echo $nbr-'1'.'<br>'; fclose($fp); // fermeture du fichier $filename3 = "h:\DATACD\#virtualCD\\"; for ($j = 0; $j < $nbr-1; $j++) { echo $filename3.$files_manuf[$j].'<br>'; $fp_bis=fopen($filename3.$files_manuf[$j].'\type.txt','r'); $files_type = array(); $i = 0; while (!feof($fp_bis)) { $texte=fgets($fp_bis,1024); echo $texte."<br>\n"; // affiche la ligne en cours $files_type[$i] = $texte; $i++; } } } ?>
est-ce que qqn voit pourkoi j'ai un espace apres mon talbeau???

merci d'avance

Eléphant du PHP | 132 Messages

29 juin 2005, 11:10

if ( (is_dir($filename)) && (file_exists($filename2)) ) {
   $fp=fopen('h:\DATACD\#virtualCD\manufacturer.txt','r');
   
   $files_manuf = array();
   $i = 0;
   
   while (!feof($fp)) {
      $texte=fgets($fp,1024);
      echo $texte."<br>\n"; // affiche la ligne en cours
      $files_manuf[$i] = $texte;
      $i+1; //<= Changer en +1 ici
   }
   
   echo $files_manuf[1].'AAAAAAAA<br>';          // <-- c'est ici ke je fias le test d'affiche ki marche pas!!! 
Bon est-ce que ton fichier ne comporterait pas qu'une seule ligne, bon d'accord c'est pas tip top comme question mais on sait jamais !
Ensuite tu as mis un gros "#" dans

Code : Tout sélectionner

h:\DATACD\#virtualCD\manufacturer.txt
et sache qu'un # c'est un commentaire...
Est-ce qu'il t'affiche le texte dans le while:
echo $texte."<br>\n"; // affiche la ligne en cours
????

Bonne journée
:: Kmeleon ::
CanalPC - La webradio communautaire :: Ecrivez/Enregistrez/Ecoutez !

Eléphant du PHP | 181 Messages

29 juin 2005, 11:13

pour le # ya pas de probleme ca affiche

en fait je crois ke c mon fichier .txt car j'ai plusieur ligne et si j'ai un retour a la ligne ca me fait mon espace si j'ai k'une ligne sans retour ca marche

mais comme c un listinbg de mes fichiers je dois mettre un dossier par ligne donc la ca me met l'espace.

je vois pas comment remedier a cela :oops:

Eléphant du PHP | 132 Messages

29 juin 2005, 11:49

tu vérifie si la ligne est un \n par exemple:
while (!feof($fp)) {
      $texte=fgets($fp,1024);
      if ($texte != "\n"){
           echo $texte."<br>\n"; // affiche la ligne en cours
           $files_manuf[$i] = $texte;
           $i+1;
      }
   }
Ce la permet de ne pas ajouter +1 à $i et il lira la ligne suivante sans changer le numéro dans l'array.Je sais pas si ca marche mais bon...
:: Kmeleon ::
CanalPC - La webradio communautaire :: Ecrivez/Enregistrez/Ecoutez !

Eléphant du PHP | 181 Messages

29 juin 2005, 11:58

en fait j'ai utilise trim() et ca marche nikel....


merci d'avoir repondu :wink: