Page 1 sur 1

compléter un fichier texte

Posté : 11 juil. 2005, 10:18
par speddy1406
Désolé mais j'ai un nouveau problème...
Voila je souhaite intégrer des données contenues dans un fichers texte dans un autre fichier texte.

voici le code que j'ai fait mais çà ne fonctionne pas :
<?PHP

$fichier1 = fopen("valeur_depart.txt","a+"); 
$fichier2="fichier_final.txt";
while (!feof($fichier1))
{

$fichier2=fgets ($fichier1,50);
}


fputs($fichier1,$fichier2); 
fclose($fichier1);
?>
L'objectif est de rajouter dans le fichier fichier_final.txt les valeur du ficher valeur_depart.txt.
Je pense qu'il manque dans mon programme la partie qui récupère les valeurs de fichier_depart.txt mais je bloque un peu.

Merci pour votre aide

Posté : 11 juil. 2005, 10:33
par zeus
Je ne veux pas être désagréable mais on vient de finir un post très semblable dans lequel je t'ai donné le code qui va résoudre ce problème :evil:

http://www.phpfrance.com/forums/voir_sujet-5434.php


Si tu prend 15 secondes pour lire en détail mon code et surtout mes commentaires (et oui, je prend le temps de les mettres pour que ceux qui récupère mes sources puissent comprendres) et 15 autres secondes pour aller chercher la signification sur php.net ou équivalent, tu aurait vu que tu avais déjà la solution

Je cherche juste à te faire comprendre qu'il faut que tu cherche par toi même

Posté : 11 juil. 2005, 10:58
par speddy1406
je suis désolée encore une fois mais j'ai repris le code que tu m'as fournis et je l'ai modifié pour pour obtenir ce que je souhaite, voila ce que j'ai fait :
?>

<?PHP
//Ouverture du fichier 1 
$fichier1="assimile_3h.txt"; 
$a_fichier1 = file($fichier1); 
//Ouverture du fichier 2 
$fichier2="assimile_03.txt"; 
$a_fichier2 = file($fichier2); 



//On parcours chaque ligne du fichier 2 
foreach($a_fichier2 as $ligne) { 
   

    //Mise en tableau de la ligne 
    $a_ligne = explode("\t",$ligne); 

    
    
    //Ouverture du fichier assimile_3h.txt existant avec  le curseur à la fin pour ne pas écraser le contenu 
    $fichier = fopen("assimile_3h.txt", "a"); 
    //Construction de la ligne
   $str_a_insere = rtrim($a_ligne); 
  
     
    //Ecriture de cette ligne dans le fichier texte 
    fputs($fichier, $str_a_insere); 
    //fermeture du fichier texte 
    fclose($fichier); 
}
?>
Mais à la fin de mon fichier il me met une ligne de array.
Peux tu m'expliquer pourquoi il me met array car je ne comprend pas.merci

Posté : 11 juil. 2005, 11:00
par zeus
Attend, un doute m'assaille :shock:

Tu veut copier le contenu d'un fichier dans un autre, c'est ça ?

Et la fonction copier (copy) ?

Posté : 11 juil. 2005, 11:02
par Invité
c'est vrai je n'y avais pas pensé c'est ce que je vais faire en espérant que j'y arrive...
En te remerciant pour ton aide

Posté : 11 juil. 2005, 11:11
par speddy1406
la fonction copy fonctionne
<?PHP
copy("assimile_03.txt","assimile_3h.txt");
?>
le problème est qu'il m'écrase mes données existante dans assimile_3h.txt.

existe t-il un moyen avec cette fonction d'éviter l'écrasement des données existantes ?

Posté : 11 juil. 2005, 11:13
par zeus
Non

Donc on doit revenir au transfert manuel

Posté : 11 juil. 2005, 11:25
par zeus
- Tu transfert toujours dans le même fichier, pas la peine de l'ouvrir à chaque fois
- Pas de modification de ligne car on a besoin du \n de fin de ligne

Code corrigé
//Ouverture du fichier 1
$fichier1="assimile_3h.txt";
$o_file = fopen($fichier1, "a");
//Ouverture du fichier 2
$fichier2="assimile_03.txt";
$a_fichier2 = file($fichier2);

//On parcours chaque ligne du fichier 2
foreach($a_fichier2 as $ligne) {
    //Ecriture de cette ligne dans le fichier texte
    fputs($o_file, $ligne);
}
fclose($o_file);

Posté : 11 juil. 2005, 11:57
par speddy1406
c'est bon tout fonctionne parfaitement.
Merci beaucoup