Documentaciónarchivo_a_vectorstr(nombre)

archivo_a_vectorstr(nombre)\texttt{archivo\_a\_vectorstr}(nombre)

Nombre

archivo_a_vectorstr - Lee un archivo de texto y copia cada linea a un vector de STRING.

Sinopsis

ret = archivos.archivo_a_vectorstr(nombre)

Descripcion

Lee un archivo de texto y copia cada linea a un vector de STRING, devolviendo tambien la cantidad de lineas leidas.

Que hace: Abre el archivo nombre en modo lectura (r), lo recorre hasta FIN_ARCHIVO(f) y por cada linea:

  • lee la linea con LEER_LINEA(f)
  • la guarda directamente en vector[i]
  • incrementa i

Al final cierra el archivo y retorna una TABLA con:

  • cant: cantidad total de lineas leidas
  • lista: el vector de strings con el contenido

Para que puede usarse:

  • Cargar un archivo como lista de lineas para procesarlo despues.
  • Mostrar el contenido de un archivo linea por linea.
  • Preparar un vector para busquedas o transformaciones por linea.

Comportamiento

  • Abre el archivo en lectura.
  • Recorre hasta FIN_ARCHIVO().
  • Copia cada linea tal como fue leida al vector destino.
  • Retorna {cant = ..., lista = ...}.

Funciones API relacionadas

  • archivos.archivo_a_vector()
  • archivos.archivo_a_str()
  • archivos.buscar_en_archivo()

Parámetros

ParámetroTipoDescripción
nombreSTRINGRuta o nombre del archivo a leer.

Valor de retorno

TABLA - {cant = <NUMERICO>, lista = <VECTOR STRING>}.

Ejemplo

ejemplo.blox
INCLUIR "archivos.api"

FUNCION PRINCIPAL
INICIO

	STRING file
	NUMERICO cant, i
	TABLA ret

	file = "texto1.txt"


	// ret es una tabla con 2 campos
	// <cant>		cantidad de lineas leidas del archivo y copiadas
	// <lista> 	    un vectorstr donde se copiaron las lineas
	ret = archivos.archivo_a_vectorstr(file)
	cant  = ret[1].cant

	STRING  lista[cant]

	lista = ret[1].lista

	//DEPURAR(ret[1].lista)

	IMPRIMIR("\nSe leyeron ", ret[1].cant:0, "lineas.\n")


	// Imprime todos los elementos del vector de string <lista>
	// Es 1-based
	//
	i=1
	MIENTRAS (i <= cant) HACER
		IMPRIMIR ("\n", i:0, "\t", lista[i])
		//IMPRIMIR (lista[i])
	   i = i + 1
	FIN_MIENTRAS

	IMPRIMIR("\n")


FINAL