Documentaciónbuscar_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 textoposicion: 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ámetro | Tipo | Descripción |
|---|---|---|
| nombre | STRING | Ruta o nombre del archivo a leer. |
| buscado | STRING | Texto 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