Power Builder - leer archivo

 
Vista:

leer archivo

Publicado por luis (50 intervenciones) el 18/11/2006 00:30:03
Hola a todos tengo este inconveniente para ver si me ayudan

Tengo un control lisbox que me selecciona de un directorio unos archivos de texto que me genera otro sistema, y que ademas estos los inserto a una tabla en mi BD. he podido filtrar aquellos archivos vacios cuyo contenido no trae nada y aquellos cuyo tamaño en caracteres no sobrepasan los 60 caracteres,

mis archivos para poderlos insertar a la tabla definitiva las inserto a una tabla temporal primeramente

mis archivos buenos tienen esta estructura
0, 11, 14821, 400, 5055, 11204, 10765, 2001375182, 3, 4, 11708,MSC00256, 0, 1, 14821

15 columnas y los archivos de texto estan delimitados por comas

ahora bien me he encontrado que otros archivos traen 13 columnas ejemplo

14821, 400, 5055, 11204, 10765, 2001375182, 3, 4, 11708,MSC00256, 0, 1, 14821

lo que necesito es generar este mismo procedimiento

For i=1 to li_Total
A[i]=i
ls_Texto = lb_1.Text(i)

// inicio de procedimiento

integer li_FileNum
string ls_Emp_Input
long ll_FLength
string valor

ll_FLength = FileLength64("C:\ubicacion de mi archivo\"+ls_texto)
li_FileNum = FileOpen("C:\ubicacion de mi archivo"+ls_texto, &
LineMode!)

IF ll_FLength <= 60 THEN // aqui filtro aquellos que son menores a 60 caracteres
FileRead(li_FileNum, ls_Emp_Input)
valor = string(li_FileNum)+", "+string(ls_Emp_Input)+" ,"+ls_texto

insert into tmp.no_procesados (descripcion,fecha)
values(:valor,:fecha)
using sqlca;
FileClose(li_FileNum) // cierra archivo

RUN("C:\eliminar.bat "+ ls_texto) // elimina archivo.
END IF

IF ll_FLength >= 61 THEN //
FileRead(li_FileNum, ls_Emp_Input)
valor = string(li_FileNum)+", "+string(ls_Emp_Input)+" ,"+ls_texto

insert into tmp.procesados (descripcion,fecha)
values(:valor,:fecha)
using sqlca;

end if
next
end if

Como puedo aplicar el fileopen, fileread, fileclose para cuando abra el archivo me pueda contar las comas que tengo dentro de mi archivo y con eso mandarle un nuevo filtro.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder