Question

J'ai reçu ce code d'une de ces belles personnes ici qui sont prêts à dépenser leur temps et leur énergie pour partager leurs connaissances avec noobs:

Sub ReadLinesFromAFileOneAfterAnother ()
Const ForReading = 1, ForWriting = 2, ForAppending = 8
Dim fso, MyFile, FileName, TextLine

Set fso = CreateObject("Scripting.FileSystemObject")

FileName = "c:\testfile.txt"

Set MyFile = fso.OpenTextFile(FileName, ForReading)

'' Read from the file
Do While MyFile.AtEndOfStream <> True
    TextLine = MyFile.ReadLine

    '' Do stuff to TextLine

Loop
MyFile.Close
End Sub

Alors que je sais quelle tâche ce code exécute, je veux toujours savoir ce que chacun de ses éléments moyens et fait. Quelqu'un peut-il, s'il vous plaît, expliquez-moi ce que la troisième ligne de ce code est tout au sujet:

Dim fso, MyFile, FileName, TextLine

Qu'est-ce que « FSO » en premier lieu? Je sais que signifie « File System Object », mais il ne contribue guère à me expliquer ce qu'il est réellement et ce qu'elle accomplit. Qu'est-ce que ces trois mots suivants signifient ( « MonFichier », « FileName », « TextLine »)? Sont-ils une sorte de paramètres de quelque chose?

Je l'ai lu: http://msdn.microsoft.com/en-us /library/h7se9d4f(VS.85).aspx

et ceci: http://msdn.microsoft .com / fr-fr / bibliothèque / ebkhfaaz (VS.85) .aspx

mais il se sent comme ces matériaux sont wrriten pour ceux qui se seraient en mesure de les écrire - je compris à peine quoi que ce soit. Certaines choses, bien sûr, sont plus ou moins claires, mais il y a tant d'autres termes et des mots que je ne connais pas! Finalement, il n'y a pas un tout image claire et complète.

Alors, je lui ai donné et a décidé de revenir ici. Ce site est probablement l'un des rares sur l'Internet (en fait, je ne l'ai pas rencontré tout autre) qui a déclaré dans son règlement: « Pas question est trop trivial ou trop « débutant » ». Cela me donne une sorte de terrain pour poser cette question actuelle.

Alors, s'il vous plaît, quelqu'un, me expliquer en termes simples ce « FSO » est. Précisément, ce que la troisième ligne du code ci-dessus est tout au sujet.

Merci tout à l'avance.

Était-ce utile?

La solution

La ligne de code:

Dim fso, MyFile, FileName, TextLine

déclare des choses appelées 'variables' de type variant.

Une variable est un peu d'espace dans la mémoire d'un nom et un type. Vous les utilisez pour laisser le programme savez que vous allez être en faire usage ultérieurement dans le code.

Normalement, vous souhaitez donner les variables d'un type (comme nombre entier ou chaîne) mais le codeur n'a pas, donc il a fait défaut à la variante, qui peut prendre tout type (en substance).

Une fois que vous avez fait:

Set fso = CreateObject("Scripting.FileSystemObject")

contient alors FSO un peu de code qui peut faire des choses pour le système de fichiers.

Set MyFile = fso.OpenTextFile(FileName, ForReading)

signifie que vous utilisez la fonctionnalité FSO pour ouvrir un nom de fichier spécifié dans la variable « nom », et vous avez mis une référence dans la variable « monfichier ».

Vous pouvez alors faire d'autres choses avec le fichier en utilisant la variable monfichier.

Le « faire tout » boucle se lit dans ce fichier une ligne à la fois (myfile.readline) et met le résultat dans la variable « TextLine », qui est titulaire d'une autre ligne de texte à partir du fichier chaque fois que vous allez autour de la boucle, jusqu'à ce que le fichier est terminé.

L'idée de ce code est de lire la ligne de fichiers en ligne, faire des choses avec le contenu de chaque ligne que vous venez à travers elle. Vous pouvez l'imprimer, l'enregistrer, l'afficher à l'utilisateur, etc., comme le titre de la sous indique!

Pour être honnête, les notions de base sur VB sont essentiels pour vous d'être en mesure d'interpréter ce code, donc je suggère la recherche d'un tutoriel en ligne ou un livre.

Autres conseils

Tout ce que la ligne est en train de faire, consiste à définir les comme variables à utiliser plus bas dans le code

Voir aussi à ce poste sur StackOverflow: Qu'est-ce que ne se gradue dans support Visual Basic et BASIC?

Dim fso, MyFile, FileName, TextLine

Cette ligne définit les variables.
Le but de le faire, il pour aider les fautes de frappe prises que les variables sont référencées à travers le script. Ceci est généralement utilisé en tandem cep Option Explicit (généralement trouvé en haut du script).

Par défaut, VBA ne pas nécessitent cette variable définie. On peut remplacer ce [stupide] comportement par défaut en utilisant l'être produit Option Explicit option de sorte qu'une exception « variable non définie » lorsqu'une variable particulière n'est pas définie.
Sans ce paramètre, dans l'extrait de la question si, par exemple sur la ligne 4, nous avions inadertently Typo-ed le nom FILENAM, en omettant le e, VBA procéderait, ayant fait deux des variables et FileName FILENAM; plus tard dans le programme, lors de l'utilisation, correctement, la variable fileName, une valeur vide serait utilisée, conduisant à subtile et difficile à trouver des bugs .

Cette 3e ligne les définit simplement à utiliser plus tard. FSO, nom de fichier, etc sont placeholder simplement variables à utiliser plus tard dans le code. FSO est déclaré et réglé sur un nouvel objet système de fichiers. Cela pourrait être tout type de système de fichiers - NTFS, FAT etc, mais tout cela signifie est que vous êtes sur le point de travailler avec les fichiers sur le système. Ensuite, vous l'utiliser pour ouvrir le fichier spécifié en lecture seule, et à l'écart du reste du code GOES. Vous devez spécifier le FSO pour que le programme sait où lire -. Que ce soit un fichier, un flux d'entrée ou d'un système de fichiers supplémentaire séparé

J'espère que cela aide un peu!

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top