Extraer datos de un archivo plano.
1 Archivos Adjunto(s)
Hola necesito ir, extayendo de cada registro para verificar si la deuda total de cada registro es correcta, esto lo hago con ciertas operaciones , pero para ello necesito ir estrayendo las siguientes información:
CORTE INTERES: TASA INTERES: FECHA QUE DEBIO PAGAR: FEC.PAGO/FEC.GEN: CEDULA DEUDA INTERESES DEUDA TOTAL alguien me puede decir como puedo ir extrayendo estos datos. |
Plantea un algoritmo de como lo harías tú...y de ahí partimos.
|
Ingabraham, lee cada línea y métela en una variable tipo string,luego usa la función pos() para detectar el texto que deseas,
p.ej. Linea := readln(f,t); P := pos('CORTE INTERES :',Linea); if P > 0 then vCorte := copy(Linea,p+15,10) y así sucesivamente... Seguro que te servirá, pero no esperes que te pongamos todo el código de la rutina que necesitas. :cool: |
si no he puesto codigo, es por que no se por donde empezar
y no se como validar cual linea es la correcta para tomarla. agradezco mucho sus aportes. |
Hola.
He mirado el archivo de ejemplo que adjuntas. Me parece que es fácil leer los datos de ese archivo; aunque te llevará un tiempito hacer que todo salga bien. No tengo ni idea de tus conocimientos, ni de la versión de Delphi que usas. Así que te comentaré lo que creo más importante. Para leer el archivo puedes usar un ListBox, un Memo o un TStringList. Con LoadFromFile ('NombreArchivo.txt'). Luego utilizas Items (Lines si usas un Memo). Por ej. memo1.Lines [3]. Todo ello, sabiendo que se parte de el item nº 0, no del nº 1. Por ej.: memo1.Lines.Count -1 te da el número de índice de la última línea del Memo. Para recorrer todas las líneas del Memo, puedes usar:
También podrías usar un While...do...
cc es una variable integer. Para localizar un tipo determinado de texto en una línea, usa la función Pos. Con ella podrás saber si existe un texto determinado dentro de una línea, y devuelve la posición en la que se encuetra ese texto. Por ej., en el bucle for anterior, podrías ver si aparece el texto "VENTAS:" en la línea que está leyendo. Si aparece, devolverá un valor superior a 0:
Para sacar partes del texto de una línea, usa la función COPY, que devuelve una parte del texto que comienza en una posición xx y que contiene yy caracteres. Ej: Copy ( Memo1.Lines [ cc ], xx, yy ) ; Combinando todo esto, seguro que puedes hacer muchas cosas. Saludos. |
La franja horaria es GMT +2. Ahora son las 02:01:31. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi