lire dans un fichier [php] - PHP - Programmation
Marsh Posté le 28-10-2007 à 08:58:10
C'est un problème d'accolades.
Ce qui se passe, c'est que la ligne
for($i = 0; $i < count($TabFich); $i++) |
fait tourner le compteur $i jusqu'à la fin, et après la valeur de $i pour les lignes suivantes
$nb_car = strlen($TabFich[$i]); |
est déjà à la fin du fichier. Quand on dépasse les bornes, il n'y a plus de limite, dit un proverbe tibètain. D'où les messages d'erreur.
La solution est :
1. Mettre une accolade ouvrante après l'instruction for()
2. Mettre une accolade fermante après le deuxième echo.
N.B. Cette erreur aurait été plus visible si les lignes avaient été bien indentées, car on aurait vu que la dernière accolade est celle du if, et non pas celle du for.
Marsh Posté le 28-10-2007 à 14:36:35
Ah d'accord !
Je n'avais jamais vu la boucle For porter des accolades. Mais peut être que tous les exemples que j'ai pu voir ne fonctionnaient que sur une seule instruction, et qu'on peut s'autoriser à ne pas mettre d'accolade quand c'est court.
En tout cas, merci beaucoup, pour tes explications.
Marsh Posté le 28-10-2007 à 15:56:23
hmmm j'ai un autre probleme
Le relevé de la premiere lettre est bon.
Par contre le compte du nombre de caractère ne fonctionne pas.
voici le contenu du fichier liste
Code :
|
et voici ce qu'il me trouve :
Code :
|
pour la derniere ligne, il m'en trouve donc bien 6. Mais pourquoi m'en trouve t-il 8 pour "ligne0".
(il n'y a pas d'espace, rien)
Y a un principe que je n'ai pas compris
merci
Marsh Posté le 28-10-2007 à 16:17:44
La première ligne contient les caractères de retour à la ligne.
Il faut donc utiliser la fonction rtrim.
Marsh Posté le 28-10-2007 à 16:28:28
Faudra pas venir poser ta prochaine question ici, espèce de newbie
Marsh Posté le 28-10-2007 à 16:29:13
merci, ça marche
Marsh Posté le 28-10-2007 à 03:47:52
Bonjour,
voila je programme un script pour lire dans un fichier et effectuer des opérations sur les lignes de ce dernier.
voici ce que ça donne (j'ai bien simplifié bien sur )
J'aimerais savoir pourquoi j'obtiens le message d'erreur :
Notice: Undefined offset: 7 in c:\.... on line 11
Notice: Undefined offset: 7 in c:\.... on line 13
J'ai bien le nb de caractères qui s'affiche, mais la boucle s'arrête au premier mot relevé dans le fichier (d'ailleurs je constate qu'il commence par la derniere ligne huh) et qu'il ne releve par contre par la premiere lettre.
Ou est mon erreur de débutant ?
merci
Message édité par -tinost@r- le 28-10-2007 à 03:48:50