Compter les lignes

Eléphant du PHP | 216 Messages

24 janv. 2007, 15:49

J’aimerai compter les lignes d’un fichier csv mais uniquement les lignes renseignées.
Dès qu’on rencontre une ligne vide on arrête les compte…

J’ai le code suivant mais ça ne convient pas car il compte la totalité des lignes,
Même les vides…


$nbr = count(file(fichier.csv));

merci d'avance pour votre aide.

ViPHP
ViPHP | 3607 Messages

24 janv. 2007, 15:55

Note : Chaque élément du tableau résultat contiendra la nouvelle ligne de fin de chaîne. Il faudra donc utiliser rtrim() sur cette valeur pour la supprimer.

ViPHP
ViPHP | 1961 Messages

24 janv. 2007, 16:40

Bonjour,

Je crois que c'est un peu plus complexe que ce que tu fais.

Tu dois charger ton fichier dans une variable-tableau.
Parcourir ce tableau jusqu'à rencontrer la première ligne vide.
Comme la fin de ligne n'est pas marquée de la même façon dans tous les systèmes je te conseille d'utiliser
trim(nl2br($tableau[$variable]))
Deux choses sont infinies, l'Univers et la sottise humaine!!
Mais je ne suis pas sur de ce que j'affirme au sujet de l'Univers.

A. Einstein

Eléphant du PHP | 216 Messages

24 janv. 2007, 17:59

aurais-tu un exemple?

merci d'avance.

ViPHP
ViPHP | 1961 Messages

24 janv. 2007, 18:18

Re,

C'est un exemple, donc ne te contente pas d'un copier coller. Essaie de comprendre et si tu as des questions n'hésite pas à le poser.

Certaines étapes peuvent être supprimées, je te le donne pas à pas pour que tu puisses comprendre.
// Initialisation des variables
$nbrLigsLues = 0; // Nombre de lignes lues
$nbrLignesFichier = 0; // Nombre de lignes dans le fichier
$nomFichier = 'fichier.csv'; // Nom du fichier à traiter

// Chargement du fichier dans un tableau temporaire
$tabTemp = file($nomFicher);

// On compte le nombre de lignes dans le fichier
$nbrLignesFichier = count($tabTemp);

// On boucle sur le tableau jusqu'à rencontrer une ligne vide ou que la fin du tableau soit atteinte.
while($nbrLigsLues < $nbrLignesFichier && '<br />' != trim(nl2br($tableau[$nbrLigsLues]))) {
   $nbrLigsLues++;
}
// On affiche le résultat
echo 'Nombre de lignes trait&eacute;es : ' . $nbrLigsLues . '<br />';
Je n'ai pas testé le code, il possible qu'il comporte des erreurs, si c'est la cas, poste-les. On les corrigera.
Deux choses sont infinies, l'Univers et la sottise humaine!!
Mais je ne suis pas sur de ce que j'affirme au sujet de l'Univers.

A. Einstein