Je comprends pas ce que fait la commande

Résolu
Signaler
Messages postés
1423
Date d'inscription
mardi 14 décembre 2004
Statut
Membre
Dernière intervention
29 décembre 2012
-
Messages postés
402
Date d'inscription
jeudi 25 novembre 2004
Statut
Membre
Dernière intervention
7 juin 2009
-
la commande est dans une fonction NbrLigne
Const Fichier = "c:\tree.tmp"
on a copié au préalable dans le fichier tree.tmp tous les chemins de tous les fichiers de tous les dossiers et sous dossiers via la commande :
Fenetre = Shell("cmd.exe /c " + Chr(34) + "dir c:\*.* /s /b > " + Fichier + Chr(34), vbHide)

Function NbrLigne(Fichier As Variant)
On Error Resume Next
NbrLigne = -1
Open Fichier For Input As #14
If Err = 0 Then
While Not EOF(14)
Line Input #14, a
NbrLigne = NbrLigne + 1
Wend
End If
Close #14
End Function

Si quelqu' un pourait m expliquer ce que fait ce qui est en rouge ...ça m aiderait beaucoup ...

7 réponses

Messages postés
402
Date d'inscription
jeudi 25 novembre 2004
Statut
Membre
Dernière intervention
7 juin 2009
5
Ah la la, les codes sans commentaires

'Ouvre le fichier c:\tree.tmp en lecture (For Input) en lui donnant le numéro de canal 14 (numéro qui permet de référencer le fichier que tu as ouvert)

Open Fichier For Input As #14
'Teste si il a réussi à ouvrir le fichier
If Err = 0 Then
'Parcourt le fichier jusque à sa fin (EOF = End Of File)
While Not EOF(14)
'Lit la ligne en cours du fichier et la stocke dans la variable a
Line Input #14, a
'Incrémente le nb de lignes lues
NbrLigne = NbrLigne + 1
Wend
End If
'Ferme le fichier
Close #14
3
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 109 internautes nous ont dit merci ce mois-ci

Messages postés
285
Date d'inscription
dimanche 14 décembre 2003
Statut
Membre
Dernière intervention
13 mars 2012

ouverture d'un fichier en ecriture du fichier sous la référence #14

si tout va bien

tant que je suis pas au bout du fichier

j'écri a (sur la ligne en cours)

je compte le nbre de ligne
fintant que

fin erreur

je ferme le fichier
madbob
3
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 109 internautes nous ont dit merci ce mois-ci

Messages postés
304
Date d'inscription
vendredi 16 janvier 2004
Statut
Membre
Dernière intervention
10 mai 2017
2
Cela compte le nombre de lignes qu'il y a dans ton fichier (qui doit etre au format t exte).
Traduction :


Open Fichier For Input As #14
ouvrir le fichier "fichier" en lecture en tant que 14
14 c juste une sorte d'alias tu aurait pu mettre n'importe quoi à la place
for input c en lecture, il y a la possibilité de mettre en écriture (for append) ou en ajout (for output)
If Err = 0 Then
Ca je sais pas par contre, c surement pour dire s'il il n'y a pas d'erreurau niveau du fichier (chemin, extention...)
While Not EOF(14)
Tant que ce n'est pas la fin du fichier (eof = end of file)
Line Input #14, a
mettre dans la variable a la ligne en cours
NbrLigne = NbrLigne + 1
incrémenter le compteur de lignes de 1 (il a dc été initialisé à 0 avant la fonction)
Wend
refaire
End If
finsi
Close #14

fermer les fichier

Voila j'espère t'avoir aidé.

BIz
3
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 109 internautes nous ont dit merci ce mois-ci

Messages postés
285
Date d'inscription
dimanche 14 décembre 2003
Statut
Membre
Dernière intervention
13 mars 2012

a Z... il lit la ligne

madbob
Messages postés
285
Date d'inscription
dimanche 14 décembre 2003
Statut
Membre
Dernière intervention
13 mars 2012

Double Z le fichier est ouvert en lecture....
Enfin l'aide en ligne, c'est partique pour ce genre de chose non ?
madbob
Messages postés
3140
Date d'inscription
vendredi 14 mai 2004
Statut
Membre
Dernière intervention
11 mars 2019
31
La fonction lit le fichier et compte le nombre de Lignes ce qui devrait correspondre au nombre total de fichiers, elle renvoie -1 en cas d'erreur.
pour l'appeler:
Dim totalfichier As Long
totalfichier = NbrLigne(Fichier)

il est préférable de spécifier le type renvoyé par la Fonction
Private Function NbrLigne(Fichier As Variant) As Long

- - - - - - - - - -
End Function

Daniel
Messages postés
402
Date d'inscription
jeudi 25 novembre 2004
Statut
Membre
Dernière intervention
7 juin 2009
5
La commande Line Input #14, a fait également en sorte que tu avances à la ligne suivante dans le fichier