compléter un fichier texte

Eléphant du PHP | 92 Messages

11 juil. 2005, 10:18

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

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

11 juil. 2005, 10:33

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
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Eléphant du PHP | 92 Messages

11 juil. 2005, 10:58

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

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

11 juil. 2005, 11:00

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) ?
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Invité
Invité n'ayant pas de compte PHPfrance

11 juil. 2005, 11:02

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

Eléphant du PHP | 92 Messages

11 juil. 2005, 11:11

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 ?

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

11 juil. 2005, 11:13

Non

Donc on doit revenir au transfert manuel
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

11 juil. 2005, 11:25

- 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);
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Eléphant du PHP | 92 Messages

11 juil. 2005, 11:57

c'est bon tout fonctionne parfaitement.
Merci beaucoup