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

  FORUM HardWare.fr
  Programmation
  PHP

  Metre à jour un fichier

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Metre à jour un fichier

n°892077
gee
Bon ben hon
Posté le 06-11-2004 à 20:22:12  profilanswer
 

Salut,
j'ai juste un tout petit soucis.
 
J'écrit sur des fichiers avec fopen.
Je désire les changer à un certain endroit parfois.
J'utilise donc la fonction fseek pour remonter a cet endroit, et j'ouvre mon fichier en mode r+.
 
Mon problème est qu'alors c'est comme si j'avais appuyé sur la touche insert de mon clavier. Je ne rajoute pas du texte mais je remplace ce qui existe deja ( à partir de l'emplacement choisi par fseek).
 
j'ai essayé en a,a+, mais alors le fseek ne fonctionne plus.
 
Merci pour l'aide,

mood
Publicité
Posté le 06-11-2004 à 20:22:12  profilanswer
 

n°892084
fluminis
Posté le 06-11-2004 à 20:29:27  profilanswer
 

j'suis pas sur que ca soit possible d'inserer du texte comme ca au milieu d'un fichier.
Il faut peut etre passé par un fichier temporaire:
tu recopies tout jusqu'a la position voulue, tu ecris et tu finis de recopier...

n°892091
gee
Bon ben hon
Posté le 06-11-2004 à 20:41:09  profilanswer
 

Oh, c'est peut etre pour cela que je ne trouvais pas depuis jeudi comment faire.
 
Ca parait assez lourd d'utiliser 2 fichiers pour juste ca, je pensais que c'était faisable. Mais si tu me dis que non alors je vais faire comme tu me dis, merci.

n°892164
sonikbuzz
echo "Hello World!";
Posté le 06-11-2004 à 22:05:31  profilanswer
 

Salut,
Je v te donner quelques piste :
 
1: ouvrir le fichier texte et obtenir une array:

Code :
  1. $record_array = file($path_text_file);


 
2: tu modifie ou ajoute ou efface un record dans $record_array.
 
3: tu "transforme" ta nouvelle array en text file :

Code :
  1. $file = fopen($path_text_file, "w+" );
  2. for($element=0;$element<count($record_array) ;$element++)
  3. {
  4.     $record = trim($record_array[$element]);
  5.             fwrite($file, $record . "\n" );
  6.     chmod("$textfilename",777);
  7. }
  8. fclose($file);


 
4 : dans le php manual jette un coup d'oeil sur les fonction consernant :
-les fichiers : fopen(), fwrite(), fclose()...
-les arrays : array_search() ...

n°892194
gee
Bon ben hon
Posté le 06-11-2004 à 22:40:48  profilanswer
 

Merci c'est gentil, mais je me suis débrouillé avec

Code :
  1. if ($handle = fopen($fichier, 'r+'))
  2.   {
  3.    fseek($handle,2862); //2862
  4.    $test = fgets($handle);
  5.    $test = trim ($test);
  6.    if ($test != $var )
  7.    {
  8.     fseek($handle,0);
  9.     $test = fread($handle,9);
  10.     $tmp = substr($test,0,2862);
  11.     $test = $test . $page;
  12.     $test = $test . substr($test,2863);
  13.     fseek($handle,0);
  14.     fwrite ($handle,$test);
  15.    }
  16.    fclose($handle);
  17.   }


 
A part que le fread ne fonctionne pas bien, je vais probablement mettre un file_get_contents()a la place de quelques trucs.
 
Merci bien
 
edit : le code n'est pas tout à fait bon, je le sais, c'est juste pour la forme donc ne vous embetez pas à tenter de le corriger :)


Message édité par gee le 06-11-2004 à 22:51:00
n°892294
gee
Bon ben hon
Posté le 07-11-2004 à 00:40:39  profilanswer
 

C'est le bordel la fonction substr j'ai eu l'impression, car parfois si je faisais un length aussi grand que je voulais, il ne me prenait plus rien.
J'ai pas trop compris.
Je m'en suis sorti avec

Code :
  1. if ($test = file_get_contents($fichier))
  2.   {
  3.    $tmp = $test[2899] . $test[2900];
  4.    $tmp2 = $champ3 ." ";
  5.    $tmp2 = substr($tmp2,0,2);
  6.    if ($tmp != $tmp2)
  7.    {
  8.     echo 'toto';
  9.     $tmp = substr($test,0,2854) . $page . substr($test,2859);
  10.     if ($handle = fopen($fichier, 'w'))
  11.     {
  12.      fwrite($handle,$tmp);
  13.      fclose($handle);
  14.     }
  15.    }
  16.   }


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

  Metre à jour un fichier

 

Sujets relatifs
[PHP] Extaire du texte dans un fichierLire les champs d un fichier C++
Fichier son en Javaproblème d'accent dans un fichier xml
ajout ligne dansun fichier texteCreation d'un outil de mise à jour d'un site
Creer un outil de mise à jourtéléchargement de fichier distant [résolu]
tester l'existence d'un fichier sur le serveur [résolu]Couper uin fichier en 2
Plus de sujets relatifs à : Metre à jour un fichier


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