parfait18
-
6 août 2012 à 09:12
cs_Mcjo
Messages postés403Date d'inscriptiondimanche 12 août 2001StatutMembreDernière intervention 3 septembre 2012
-
15 août 2012 à 11:13
Bonjour,
j'ai écrit un code qui se doit de récupérer des données numériques dans des fichiers texte (.txt) qui paraissent avoir la même structure à savoir 150 lignes, 4 lignes d'entête, 12 lignes de description et les données utiles débutent à partir de la ligne 20 jusqu'à la ligne 149. Ce pendant, mon code marche avec un seul de ces fichiers et, avec les autres fichiers, il me renvoi un message d'erreur du genre: invalide offset on line 19. voici mon code:
$file=$_POST['file']; //récupération du fichier d'un formulaire
$fp = fopen($file,"a"); //ouverture du fichier en écriture et positionnement du curseur en fin de fichier
$i=19;
$fichier=file($file); // récupération des lignes du fichier dans le tableau $fichier
$temp = explode(" ", $fichier[$i]);// ligne 19 : ligne problématique
while($temp[0]!=="#")
{
$fichier[$i]=str_replace(",",".",$fichier[$i]);
list($data1,$data2) = explode("\t", $fichier[$i]);
echo $data1."\t".$data2."
";
$i++;
$temp = explode(" ", $fichier[$i]);
}
NHenry
Messages postés15113Date d'inscriptionvendredi 14 mars 2003StatutModérateurDernière intervention22 avril 2024159 6 août 2012 à 14:31
Bonjour,
C'est souvent parce que tu n'as pas 20 items(n°19=20ième item) dans ton tableau.
Essayes de le faire à la pain, je pense que tu trouveras.
---------------------------------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS, celui-ci pour bien poser votre question ou encore celui-ci pour les PFE et autres exercices.[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : ).[*]En VB.NET pensez à activer Option Explicit et Option Strict (propriété du projet) et à retirer l'import automatique de l'espace de nom Microsoft.VisualBasic (onglet Références dans les propriétés du projet).[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés/list ---
Mon site
Bonjour,
en fait mon fichier compte 150 lignes dons $fichier[19] existe bien.
est ce que l'instruction
$file=$_POST['file'];
est correcte? en effet, le fichier est chargé via un formulaire avec l'index 'file'. ne devrais je pas plutôt utiliser $_FILES au lieu de $_POST pour récupérer le fichier uploader??? si oui comment m'y prendre alors?
NHenry
Messages postés15113Date d'inscriptionvendredi 14 mars 2003StatutModérateurDernière intervention22 avril 2024159 7 août 2012 à 20:07
Bonjour,
Je ne pense pas, regardes comment utiliser un fichier téléchargé.
---------------------------------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS, celui-ci pour bien poser votre question ou encore celui-ci pour les PFE et autres exercices.[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : ).[*]En VB.NET pensez à activer Option Explicit et Option Strict (propriété du projet) et à retirer l'import automatique de l'espace de nom Microsoft.VisualBasic (onglet Références dans les propriétés du projet).[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés/list ---
Mon site
cs_Mcjo
Messages postés403Date d'inscriptiondimanche 12 août 2001StatutMembreDernière intervention 3 septembre 20122 15 août 2012 à 11:13
$i=19; <-- ligne 20 du fichier
$fichier=file($file); // récupération des lignes du fichier dans le tableau $fichier
$temp = explode(" ", $fichier[$i]);// ligne 19 : ligne problématique