Trabajar con archivos de acceso secuencial

Seleccione idioma Seleccione idioma
Id. de artículo: 151262 - Ver los productos a los que se aplica este artículo
Expandir todo | Contraer todo

En esta página

Resumen

Archivos de acceso secuencial, archivos de texto sin formato son los tipos de archivos que encontrará más en Visual Basic para aplicaciones. En un archivo de acceso secuencial, se supone que cada carácter en el archivo representa un carácter de texto o una secuencia de formato de texto, como por ejemplo, una tabulación o un carácter de nueva línea. Los archivos como CSV (valores Comma-Separated), TXT (delimitado por tabuladores) y PRN (formato de espacio) son ejemplos de archivos de acceso secuencial.

Más información

Microsoft proporciona ejemplos de programación con fines ilustrativos únicamente, sin ninguna garantía tanto expresa como implícita. Esto incluye, entre otras, las garantías implícitas de comerciabilidad e idoneidad para un fin determinado. Este artículo se supone que está familiarizado con el lenguaje de programación que se muestra y con las herramientas que se utilizan para crear y depurar procedimientos. Los ingenieros de soporte técnico de Microsoft pueden explicarle la funcionalidad de un determinado procedimiento, pero no modificarán estos ejemplos para ofrecer mayor funcionalidad ni crearán procedimientos que cumplan sus requisitos específicos. Las ventajas de archivos de acceso binario son como sigue:

  • Archivos de este tipo pueden ser creados o manipulados por editores de texto fácilmente.
  • Prácticamente todas las aplicaciones pueden leer o escribir acceso secuencial a archivos.
  • Archivos de este tipo son fáciles de proceso en Visual Basic para aplicaciones.
Las desventajas de archivos de acceso binario son como sigue:

  • Archivos de este tipo no se recomiendan para almacenar grandes cantidades de datos porque todos los valores se almacenan como una cadena de caracteres.
  • Archivos de este tipo normalmente requieren más espacio de almacenamiento que los tipos de acceso.
  • No se puede leer y escribir en un archivo que está abierto para acceso secuencial simultáneamente. Sólo puede realizar uno u otro a la vez.

Abrir archivos para acceso secuencial

Cuando abre un archivo para acceso secuencial, ábralo para realizar una de las siguientes operaciones:

  • Caracteres de entrada en el archivo (entrada)
  • Caracteres de salida para el archivo (salida)
  • Anexar caracteres al archivo (anexar)
Para abrir un archivo de cualquiera de estas operaciones, utilice la instrucción Open, como sigue:
Nombre de archivo abierto para [entrada | resultados | Append] como númeroarchivo longitud = buffersize
Cuando utiliza acceso secuencial para abrir un archivo de entrada, el archivo ya debe existir; de lo contrario, Visual Basic para aplicaciones genera un error capturable. Cuando intenta abrir un archivo inexistente para Output o Append, la instrucción Open realmente primero crea el archivo y, a continuación, lo abre. Cada vez que abra el archivo, debe utilizar la instrucción Close para cerrar el archivo antes de volver a abrir el archivo de otro tipo de operación.

Leer archivos abiertos para acceso secuencial

Para recuperar el contenido de un archivo de texto, abra primero el archivo de entrada secuencial. A continuación, utilizar Line Input # o # para copiar el archivo en variables de entrada. Utilice # cuando de entrada de línea que se necesita leer un archivo, una línea a la vez. Con archivos delimitados (como CSV), utilizar la entrada # lee cada línea del archivo en una lista de variables.

Leer un archivo línea por línea

Utilizar Line Input # con un archivo abierto para acceso secuencial si los datos se almacenan en el archivo línea a la vez. La instrucción # Line Input lee un archivo de un carácter a la vez hasta que encuentra un retorno de carro (Chr(13)) o una secuencia de retorno de carro. Secuencias de retorno de carro se omite en vez de anexarse a la cadena de caracteres.

En el siguiente ejemplo de código utiliza la instrucción # Line Input para leer datos de un archivo de texto de ejemplo denominado textfile.txt, una línea a la vez.

Nota: Se tendrá que crear el archivo de texto denominado textfile.txt, si ya no existe.
  Sub ReadStraightTextFile()
      Dim LineofText As String

      ' Open the file for Input.
      Open "TEXTFILE.TXT" For Input As #1

      ' Read each line of the text file into a single string
      ' variable.
      Do While Not EOF(1)
         Line Input #1, LineofText
         MsgBox LineofText
      Loop

      ' Close the file.
      Close #1

   End Sub
				

Leer un archivo de texto delimitado

Como se mencionó antes, utilizar la entrada # leer archivos delimitados. Cuando se leen, cadena estándar o datos numéricos se asignan a variables tal y como aparecen en el archivo de texto. Delimitador de comas o líneas en blanco dentro del archivo se devuelven como vacío. Comillas dobles ("") que rodea cada campo en los datos de entrada se omite y campos envolvente con # s (signos de almohadilla) puede interpretarse como fechas. Al utilizar la entrada #, los elementos de un archivo de datos debe aparecer en el mismo orden que las variables en la lista de variables y asociarse con variables del mismo tipo de datos. Si los datos reales no coincide con el tipo de variable, puede encontrar errores en tiempo de ejecución.

Si tiene un archivo de texto denominado Delimit.txt y escriba los datos siguientes, va a leer la macro siguiente en los datos, una línea a la vez.
"Smith", "Juan", 22, "123 Main St", "Nueva York", "Argentina" 32432
"Pérez", "Juan", 33, "324 Elm Avda.", "San Diego", "CA" 23542
"Adams", "Bill", 45, "4523 roble CIR..", "Miami", "FL" 52343
"Jones", "Tom" 23, "2335 Maple Dr.", "Houston", "Transmisión" 23453
En el siguiente ejemplo de código utiliza la instrucción # de entrada para leer datos del ejemplo de archivo de texto en las variables:
    Sub ReadDelimitedTextFile()

      Dim LName As String, FName As String, Addr As String, City As String
      Dim state As String
      Dim age As Integer

      ' Open the file for Input.
      Open "DELIMIT.TXT" For Input As #1

      ' Read each line of the text file into the list of variables
      ' until the end of the file is reached.
      Do While Not (EOF(1))
         Input #1, LName, FName, age, Addr, City, state, zip
         MsgBox LName & ", " & FName & ", " & age & ", " & Addr & ", " _
            & City & ", " & state & ", " & zip
      Loop

      ' Close the file.
      Close 1

   End Sub
				

Escribir en archivos abiertos para acceso secuencial

Para almacenar el contenido de variables en un archivo de texto secuenciales, abrirla para acceso secuencial y, a continuación, utilice en la impresión # o la instrucción # de escritura para escribir los datos en el archivo.

La instrucción # amortización se utiliza para escribir datos sin procesar en el archivo de texto como delimitado por comas- y tiene la siguiente sintaxis:
   Write #filenumber[,outputlist]
				
al escribir en el archivo mediante Write #, los campos de cadena están rodeados con comillas dobles y los campos de fecha están rodeados con # s (signos de almohadilla). En este sentido, la amortización # es un complemento de entrada #. La macro siguiente muestra cómo se puede escribir en un archivo de texto delimitado:
   Sub WriteFile()
      Dim LName As String
      Dim BDay As Date
      Dim age As Integer

      ' Create a new text file called Test.txt.
      Open "TEST.TXT" For Output As #1

      ' Create and then write the first "record."
      LName = "Doe"
      BDay = #1/1/95#
      age = 1
      Write #1, LName, BDay, age

      ' Create and then write the second "record."
      LName = "Smith"
      BDay = #4/29/56#
      age = 39
      Write #1, LName, BDay, age

      ' Create and then write the third "record."
      LName = "Jones"
      BDay = #5/1/80#
      age = 15
      Write #1, LName, BDay, age

      ' Close the file.
      Close #1

   End Sub
				
finalizada la macro después de la escritura de archivo, tendrá un archivo de delimitada por comas texto llamado Test.txt que parece como sigue:
"Pérez", # 01-01-1995 #, 1
"Smith", # 1956-04-29 #, 39
"Jones", 1980-05-01 # #, 15
A diferencia de amortización #, la instrucción Print # escribe datos con formato de presentación (o datos con formato espacio) en un archivo secuencial. La instrucción Print # tiene la siguiente sintaxis:
   Print #filenumber,[outputlist]
				
en la lista variable de salida para impresión #, puede especificar un número de espacios para separar campos. Para obtener más información, busque "Imprimir # Statement," mediante el índice de la Ayuda de Microsoft Excel.

Si cambia la amortización # a Print # en la macro WriteFile anterior, el archivo Test.txt tendría este aspecto en su lugar:
Pérez 1/1/95 1
Smith 4/29/56 39
Jones 5/2 de 80 15

Modificar datos en un archivo abierto para acceso secuencial

Tenga en cuenta que al abrir un archivo de salida, si el archivo ya existe, son esencialmente reemplazar el contenido del archivo al escribir en él. No se anexan los nuevos datos que se escriben en el archivo. Para anexar los datos al final de un archivo, debe abrir el archivo para anexar. Todos los datos se escriben en un archivo abierto para Append se agrega al final del archivo. No se puede modificar "registros" en un archivo que se abre para acceso secuencial. Lo tiene que hacer es como sigue:

  1. Abra el archivo de entrada y todos los datos leídos en variables.
  2. Cierre el archivo.
  3. Realice las modificaciones necesarias en los datos contenidos en las variables.
  4. Abra el archivo de resultados y escribir todos los datos modificados en el archivo.
  5. Cierre el archivo.
Como de todos los pasos necesarios para realizar modificaciones en un archivo abierto para acceso secuencial, acceso secuencial no sea el método más eficaz para modificar datos en un archivo de texto, sobre todo si el archivo de texto es grande.

Propiedades

Id. de artículo: 151262 - Última revisión: miércoles, 11 de octubre de 2006 - Versión: 2.3
La información de este artículo se refiere a:
  • Microsoft Excel 97 Standard Edition
  • Microsoft Excel 95 Standard Edition
  • Microsoft Excel 5.0 Standard Edition
  • Microsoft Excel 98 para Macintosh
Palabras clave: 
kbmt kbdtacode kbhowto kbprogramming KB151262 KbMtes
Traducción automática
IMPORTANTE: Este artículo ha sido traducido por un software de traducción automática de Microsoft (http://support.microsoft.com/gp/mtdetails) en lugar de un traductor humano. Microsoft le ofrece artículos traducidos por un traductor humano y artículos traducidos automáticamente para que tenga acceso en su propio idioma a todos los artículos de nuestra base de conocimientos (Knowledge Base). Sin embargo, los artículos traducidos automáticamente pueden contener errores en el vocabulario, la sintaxis o la gramática, como los que un extranjero podría cometer al hablar el idioma. Microsoft no se hace responsable de cualquier imprecisión, error o daño ocasionado por una mala traducción del contenido o como consecuencia de su utilización por nuestros clientes. Microsoft suele actualizar el software de traducción frecuentemente.
Haga clic aquí para ver el artículo original (en inglés): 151262
Renuncia a responsabilidad de los contenidos de la KB sobre productos a los que ya no se ofrece asistencia alguna
El presente artículo se escribió para productos para los que Microsoft ya no ofrece soporte técnico. Por tanto, el presente artículo se ofrece "tal cual" y no será actualizado.

Enviar comentarios

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com