Pregunta

He recibido el código de una de esas buenas personas aquí que están dispuestos a gastar su tiempo y energía para compartir sus conocimientos con los 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

Aunque sé qué tarea realiza este código, aun así quieren saber lo que cada uno de sus elementos significa y hace. ¿Puede alguien, por favor, me explique lo que la tercera línea de este código es todo acerca de:

Dim fso, MyFile, FileName, TextLine

¿Qué es "FOE" en el primer lugar? Sé que es sinónimo de "objetos del sistema de archivos", pero hace poco para que me explique lo que realmente es y lo que logra. ¿Qué significan esas tres palabras siguientes ( "MiArchivo", "Nombre de archivo", "TextLine")? Son una especie de parámetros de algo?

He leído esto: http://msdn.microsoft.com/en-us /library/h7se9d4f(VS.85).aspx

y esto: http://msdn.microsoft .com / es-es / library / ebkhfaaz (VS.85) .aspx

pero se siente como esos materiales se wrriten para aquellos que sí sería capaz de escribirlas - Casi no entendía nada. Algunas cosas, por supuesto, son más o menos clara, pero hay muchos otros términos y palabras que no conozco! Con el tiempo, no hay un conjunto de cuadro completo y claro.

Por lo tanto, me di por vencido y decidió volver aquí. Este sitio es probablemente uno de los pocos en el Internet (de hecho, no he conocido a ningún otro) que ha declarado en su reglamento: "Ninguna pregunta es demasiado trivial o demasiado 'novato'". Esto me da una especie de terreno para hacer esta presente cuestión.

Así que, por favor, que nadie, que me explique en términos simples lo que "FOE" es. Precisamente, lo que la tercera línea del código anterior se trata.

Gracias a todos de antemano.

¿Fue útil?

Solución

La línea de código:

Dim fso, MyFile, FileName, TextLine

declara cosas llamadas 'variables' de la variante tipo.

Una variable es un poco de espacio en la memoria con un nombre y un tipo. Se utilizan para dejar que el programa sabe que va a estar haciendo uso de ellos más adelante en el código.

Lo normal sería dar a las variables de un tipo (como número entero o cadena), pero el codificador no tiene, por lo que cambia automáticamente a la variante, que puede tomar en cualquier tipo (en esencia).

Una vez que has hecho:

Set fso = CreateObject("Scripting.FileSystemObject")

a continuación, contiene FSO un poco de código que puede hacer cosas para el sistema de archivos.

Set MyFile = fso.OpenTextFile(FileName, ForReading)

significa que está utilizando la funcionalidad de FSO para abrir un archivo especificado en la variable 'nombre', y que ha puesto una referencia a ella en la variable 'mi_archivo'.

Así que a continuación, puede hacer más cosas con el archivo utilizando la variable mi_archivo.

El 'hacer mientras' bucle lee a través de ese archivo de una línea a la vez (myfile.readline) y pone el resultado en la variable 'línea de texto', que tiene una línea diferente de texto del archivo cada vez que vaya alrededor de la bucle, hasta que el archivo está terminado.

La idea de este código es leer el archivo línea por línea, haciendo cosas con el contenido de cada línea que se llega a través de ella. Se podría imprimirlo, registrarla, mostrarlo al usuario, etc, como el título de la sub indica!

Para ser honesto los conceptos básicos acerca de VB son esenciales para que usted sea capaz de interpretar dicho código, así que sugiero buscar un tutorial en línea o un libro.

Otros consejos

Todo lo que está haciendo la línea, se define como aquellas variables que se han utilizado más adelante en el código

También se refieren a este puesto en StackOverflow: Lo Qué significa DIM en Visual Basic y BASIC?

Dim fso, MyFile, FileName, TextLine

Esta línea define las variables.
El propósito de hacer lo que para ayudar a los errores tipográficos de captura que se hace referencia a las variables a lo largo de la secuencia de comandos. Este se utiliza típicamente en tándem withe Option Explicit (normalmente se encuentra en la parte superior de la secuencia de comandos).

De forma predeterminada, VBA no requieren se define esa variable. Uno puede anular esta [tonto] comportamiento predeterminado utilizando la opción Option Explicit de modo que una excepción "variable no definida" se produce cuando no se define una variable particular.
Sin este ajuste, en el fragmento de la pregunta de si, por ejemplo, en la línea 4 que teníamos inadertently errata-ed el nombre FILENAM, omitiendo el correo, VBA procedería, que tiene efectivamente dos variables de nombre de archivo y FILENAM; más adelante en el programa, al usar, correctamente, la variable Nombre de archivo, se utilizaría un valor vacío, lo que lleva a sutiles y difíciles de encontrar errores .

Esa tercera línea simplemente define que sean utilizados más adelante. FSO, Nombre de archivo, etc son simplemente marcador de posición variables a utilizar más adelante en el código. FSO se declara y establece en un nuevo objeto de sistema de archivos. Esto podría ser cualquier tipo de sistema de archivos - NTFS, FAT, etc, pero todo lo que significa es que usted está a punto de trabajar con los archivos en el sistema. A continuación, lo utiliza para abrir el archivo especificado para sólo lectura, y lejos del resto del código va. Es necesario especificar el FOE de manera que el programa sabe dónde leer -. Ya sea un archivo, un flujo de entrada o un sistema de archivos adicional separada

Espero que ayude un poco!

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top