Documentaciónbuscar_en_archivo(nombre, buscado)

buscar_en_archivo(nombre,buscado)\texttt{buscar\_en\_archivo}(nombre, buscado)

Nombre

buscar_en_archivo - Busca un texto dentro de un archivo de texto plano.

Sinopsis

ret = archivos.buscar_en_archivo(nombre, buscado)

Descripcion

Busca la aparicion de un texto dentro de un archivo de texto plano.

Que hace: Abre el archivo indicado por nombre, lo recorre linea por linea y verifica en que posicion aparece el texto buscado.

Si lo encuentra, retorna una tabla con:

  • linea: numero de linea donde se encontro el texto
  • posicion: posicion dentro de esa linea

Si no lo encuentra, retorna ambos valores en 0.

Para que puede usarse:

  • Validar si un log contiene un mensaje especifico.
  • Detectar si un archivo ya fue procesado.
  • Comprobar si existe una palabra clave dentro de un archivo txt, csv, api, json, etc.
  • Implementar busquedas simples antes de ejecutar acciones.

Comportamiento

  • Abre el archivo en modo lectura.
  • Lee linea por linea con LEER_LINEA().
  • Usa ENCONTRAR() para ubicar el texto dentro de cada linea.
  • Retorna { linea = ..., posicion = ... }.

Funciones API relacionadas

  • archivos.listar_con_extension()
  • archivos.listar_con_patron()
  • archivos.archivo_a_str()

Parámetros

ParámetroTipoDescripción
nombreSTRINGRuta o nombre del archivo a leer.
buscadoSTRINGTexto a buscar (subcadena).

Valor de retorno

TABLA - {linea = <NUMERICO>, posicion = <NUMERICO>}. Si no encuentra el texto, ambos campos valen 0.

Ejemplo

ejemplo.blox
INCLUIR "archivos.api"

FUNCION PRINCIPAL
INICIO

	STRING    nombre, texto
	NUMERICO  i, posicion, linea
	TABLA     ret

	nombre = "texto1.txt"

	
	// 1ra. Busqueda
	//
	texto    = "suppression"		// FALSO
	ret      = archivos.buscar_en_archivo(nombre, texto)
	linea    = ret[1].linea 
	posicion = ret[1].posicion 

	SI(posicion == 0) ENTONCES
		IMPRIMIR("\n", "\""+texto+"\"", " no se encontro.")
	SINO
		IMPRIMIR("\n", "\""+texto+"\"", " se encontro en linea: ", linea:0, "posicion: ", posicion:0)
	FIN_SI






	// 2da. Busqueda
	//
	texto = "CARGA()"			// VERDDERO
	ret = archivos.buscar_en_archivo(nombre, texto)
	linea    = ret[1].linea 
	posicion = ret[1].posicion 

	SI(posicion == 0) ENTONCES
		IMPRIMIR("\n", "\""+texto+"\"", " no se encontro.")
	SINO
		IMPRIMIR("\n", "\""+texto+"\"", " se encontro en linea: ", linea:0, "posicion: ", posicion:0)
	FIN_SI


FINAL