Je comprends pas ce que fait la commande

Résolu
Teclis01 Messages postés 1423 Date d'inscription mardi 14 décembre 2004 Statut Membre Dernière intervention 29 décembre 2012 - 14 janv. 2005 à 13:36
mrdep1978 Messages postés 402 Date d'inscription jeudi 25 novembre 2004 Statut Membre Dernière intervention 7 juin 2009 - 14 janv. 2005 à 13:57
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

mrdep1978 Messages postés 402 Date d'inscription jeudi 25 novembre 2004 Statut Membre Dernière intervention 7 juin 2009 6
14 janv. 2005 à 13:48
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
madbob Messages postés 285 Date d'inscription dimanche 14 décembre 2003 Statut Membre Dernière intervention 13 mars 2012
14 janv. 2005 à 13:49
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
ndsaerith Messages postés 304 Date d'inscription vendredi 16 janvier 2004 Statut Membre Dernière intervention 10 mai 2017 2
14 janv. 2005 à 13:57
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
madbob Messages postés 285 Date d'inscription dimanche 14 décembre 2003 Statut Membre Dernière intervention 13 mars 2012
14 janv. 2005 à 13:50
a Z... il lit la ligne

madbob
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
madbob Messages postés 285 Date d'inscription dimanche 14 décembre 2003 Statut Membre Dernière intervention 13 mars 2012
14 janv. 2005 à 13:54
Double Z le fichier est ouvert en lecture....
Enfin l'aide en ligne, c'est partique pour ce genre de chose non ?
madbob
0
Gobillot Messages postés 3140 Date d'inscription vendredi 14 mai 2004 Statut Membre Dernière intervention 11 mars 2019 34
14 janv. 2005 à 13:55
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
0
mrdep1978 Messages postés 402 Date d'inscription jeudi 25 novembre 2004 Statut Membre Dernière intervention 7 juin 2009 6
14 janv. 2005 à 13:57
La commande Line Input #14, a fait également en sorte que tu avances à la ligne suivante dans le fichier
0