Pergunta

recebi este código de uma dessas boas pessoas aqui que estão dispostos a gastar seu tempo e energia para compartilhar seus conhecimentos com 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

Enquanto eu sei que tarefa Isso executa código, eu ainda gostaria de saber o que cada um de seus meios elementos e faz. Alguém pode, por favor, me explicar o que a terceira linha deste código é tudo sobre: ??

Dim fso, MyFile, FileName, TextLine

O que é "FSO" em primeiro lugar? Eu sei que isso significa "File System objeto", mas faz pouco para me explicar o que ele realmente é eo que ele realiza. O que esses três seguintes palavras significam ( "MyFile", "nome do arquivo", "TextLine")? Eles são uma espécie de parâmetros de alguma coisa?

Eu li o seguinte: http://msdn.microsoft.com/en-us /library/h7se9d4f(VS.85).aspx

e este: http://msdn.microsoft .com / en-us / library / ebkhfaaz (VS.85) .aspx

mas parece que esses materiais são wrriten para aqueles que se seria capaz de escrevê-los - eu quase não entendeu nada. Algumas coisas, é claro, são mais ou menos clara, mas há tantos outros termos e palavras que eu não sei! Eventualmente, não há um toda a imagem completa e clara.

Então, eu desisti e decidiu voltar aqui. Este site é provavelmente um dos poucos na internet (na verdade eu não conheço qualquer outro), que declarou em suas regras: "Nenhuma pergunta é demasiado trivial ou muito 'novato'". Isso me dá uma espécie de terreno para pedir este presente questão.

Então, por favor, alguém, me explicar em termos simples o que "FSO" é. Precisamente, o que a terceira linha do código acima é tudo.

Obrigado a todos com antecedência.

Foi útil?

Solução

A linha de código:

Dim fso, MyFile, FileName, TextLine

declara coisas chamadas 'variáveis' de variante tipo.

Uma variável é um pouco de espaço na memória com um nome e um tipo. Você usá-los para deixar o programa sabe que você vai estar fazendo uso deles mais tarde no código.

Normalmente você daria as variáveis ??de um tipo (como inteiro, ou string), mas o codificador não tem, por isso foi padronizada como variante, que pode assumir qualquer tipo (em essência).

Uma vez feito:

Set fso = CreateObject("Scripting.FileSystemObject")

então contém fso um pouco de código que pode fazer coisas para o sistema de arquivos.

Set MyFile = fso.OpenTextFile(FileName, ForReading)

significa que você está usando a funcionalidade fso para abrir um arquivo que você especificar na variável 'filename', e você colocar uma referência a ele na variável 'myfile'.

Então você pode, então, fazer mais coisas com o arquivo usando a variável myfile.

O 'fazer enquanto' laço lê através dessa linha de um arquivo de cada vez (myfile.readline) e coloca o resultado na variável 'TextLine', que mantém uma linha diferente de texto do arquivo cada vez que você ir ao redor do loop, até que o arquivo for concluído.

A idéia deste código é ler o arquivo linha por linha, fazendo coisas com o conteúdo de cada linha como você se deparar com ela. Você pode imprimi-lo, registrá-lo, exibi-lo para o usuário, etc, como o título do sub indica!

Para ser honesto o básico sobre VB são essenciais para você ser capaz de interpretar esse código então eu sugiro à procura de um tutorial on-line ou um livro.

Outras dicas

Tudo o que linha está fazendo, está definindo os como variáveis ??a serem usadas mais abaixo no código

Consulte também este post no StackOverflow: que O DIM ficar no Visual Basic e BASIC?

Dim fso, MyFile, FileName, TextLine

Esta linha define as variáveis.
O propósito de fazer para que ele para erros de digitação ajuda de captura como as variáveis ??são referenciados em todo o script. Isso normalmente é usado dentro com conjunto Option Explicit (geralmente encontrado no topo do script).

Por padrão, o VBA não requerem essa variável ser definido. Pode-se substituir este [tolo] comportamento padrão usando a Option Explicit opção para que uma exceção "variável indefinida" ser produzido quando uma determinada variável não está definida.
Sem essa configuração, na questão do trecho se, por exemplo, na linha 4 tínhamos inadertently typo-ed o nome FILENAM, omitindo o e, VBA iria prosseguir, tendo efetivamente duas variáveis ??nome do arquivo e FILENAM; mais tarde no programa, ao usar, corretamente, a variável FileName, um valor vazio seria usado, levando a sutil e difícil de encontrar bugs .

Essa 3ª linha simplesmente define-los para ser usado mais tarde. FSO, Matrícula etc são variáveis ??simplesmente espaço reservado para ser usado mais tarde no código. FSO é declarada e definida como um novo objeto de sistema de arquivos. Isto poderia ser qualquer tipo de sistema de arquivos - NTFS, FAT etc, mas tudo o que significa é que você está prestes a trabalhar com os arquivos no sistema. Então você usá-lo para abrir o arquivo especificado somente para leitura, e longe do resto do código vai. Você precisa especificar o FSO para que o programa sabe onde para ler - seja ele um arquivo, um fluxo de entrada ou um sistema de arquivos adicional separada

.

Espero que ajude um pouco!

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top