Je n'osais pas le direIl faudrait que tu m'envoi un exemple de fichier1 et un de fichier2 afin que je teste chez moi parce que le post traine en longueur et que j'ai l'impression q'on tourne en rond
//Ouverture du fichier 1
$fichier1="coord_station_O3.txt";
$a_fichier1 = file($fichier1);
//Ouverture du fichier 2
$fichier2="O3.txt";
$a_fichier2 = file($fichier2);
//Initialisation des variables de mémorisation
//Derniere station parcouru
$lieu = "";
//Ligne du fichier 1 correspondant à la station
$index = -1;
//On parcours chaque ligne du fichier 2
foreach($a_fichier2 as $num => $ligne) {
if (($num == 0) || ($num == 1) || $ligne == "")
continue;
//J'ai modifié ce test pour ne pas traiter les lignes vides et ne pas créer les fichiers assimile_.txt
//Mise en tableau de la ligne
$a_ligne = explode(";", $ligne);
//Si on change de station
if ($a_ligne[1] <> $lieu) {
//On mémorise la dernière station parcourue
$lieu = $a_ligne[1];
//On met à jour la position de la ligne du fichier 1 à lire
$index++;
}
//On récupère la date (5eme champ) et on la découpe
$a_date = explode(" ", $a_ligne[4]);
//On récupère l'heure (2nd champ) et on la découpe
$a_heure = explode(":", $a_date[1]); // <== J'avais mis $a_ligne donc il récupérais le lieu
//On ne conserve que l'heure
$heure = $a_heure[0];
//Ouverture du fichier assimile_heure.txt avec curseur à la fin pour ne pas écraser le contenu
$fichier = fopen("fichiers/assimile_".$heure.".txt", "a");
//Construction de la ligne contenant la ligne du fichier 1 plus le 6eme champs du fichier 2
$str_a_insere = rtrim($a_fichier1[$index])."\t".$a_ligne[5]."\n";
/*BEAUCOUP D'ERREUR ICI
- Le \r ne sert à rien dans une écriture de fichier texte
- quand on fait un file, il insert un \n à la fin, le rtrim permet de le supprimer
- entre les valeurs du fichier 1, il y a une tablulation, j'en ai mis une entre les valeurs du fichier1 et la valeur du fichier 2
*/
//Ecriture de cette ligne dans le fichier texte
fputs($fichier, $str_a_insere);
//fermeture du fichier texte
fclose($fichier);
} <?PHP
//Ouverture du fichier 1
$fichier1="coord_station_O3.txt";
$a_fichier1 = file($fichier1);
//Ouverture du fichier 2
$fichier2="O3.txt";
$a_fichier2 = file($fichier2);
//Initialisation des variables de mémorisation
//Derniere station parcouru
$lieu = "";
//Ligne du fichier 1 correspondant à la station
$index = -1;
//On parcours chaque ligne du fichier 2
foreach($a_fichier2 as $num => $ligne) {
if (($num == 0) || ($num == 1) || $ligne == "")
continue;
//J'ai modifié ce test pour ne pas traiter les lignes vides et ne pas créer les fichiers assimile_.txt
//Mise en tableau de la ligne
$a_ligne = explode(";", $ligne);
//Si on change de station
if ($a_ligne[1] <> $lieu) {
//On mémorise la dernière station parcourue
$lieu = $a_ligne[1];
//On met à jour la position de la ligne du fichier 1 à lire
$index++;
}
//On récupère la date (5eme champ) et on la découpe
$a_date = explode(" ", $a_ligne[4]);
//On récupère l'heure (2nd champ) et on la découpe
$a_heure = explode(":", $a_date[1]); // <== J'avais mis $a_ligne donc il récupérais le lieu
//On ne conserve que l'heure
$heure = $a_heure[0];
//Ouverture du fichier assimile_heure.txt avec curseur à la fin pour ne pas écraser le contenu
$fichier = fopen("assimile_".$heure.".txt", "a");
//Construction de la ligne contenant la ligne du fichier 1 plus le 6eme champs du fichier 2
$str_a_insere = rtrim($a_fichier1[$index])."\t".$a_ligne[5]."\n";
//Ecriture de cette ligne dans le fichier texte
fputs($fichier, $str_a_insere);
//fermeture du fichier texte
fclose($fichier);
}
?>
$str_a_insere = rtrim($a_fichier1[$index])."\t".$a_ligne[5]."\n"; $str_a_insere = rtrim($a_fichier1[$index])."\t".$a_ligne[5]."\r\n";
Code : Tout sélectionner
1,57 47,6 27
1,91 47,9 33Code : Tout sélectionner
1,57 47,6
27
1,91 47,9
33Code : Tout sélectionner
1,57 47,6 27
1,91 47,9 33Code : Tout sélectionner
1,57 47,6
27
1,91 47,9
33