Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   agregar registros a un fichero txt (https://www.clubdelphi.com/foros/showthread.php?t=9857)

@-Soft 04-05-2004 14:31:03

agregar registros a un fichero txt
 
hola


necesito insertar registros a un fichero plano procedente de otro fichero plano, esta es la estructura del fichero:

0000001,A,20
0000001,T,50
0000002,A,12
0000002,T,14

donde 0000001 viene siendo un codigo de un producto, A ó T son la ubicacion de dicho producto (Tienda - Almacen) y lo final es la cantidad del mismo en las distintas ubicaciones.

bueno, donde quiero llegar es a lo siguiente, suponiendo que se quiere agregar el codigo 0000001 que existe en otro fichero, en este caso solo tendria que agregar la cantidad de acuerdo a su ubicacion y sumarla Ej.

0000001,A,20 en caso de que en otro fichero exista 30 solo tendria que sumarle 20+30 = 50 y quedaria de esta forma:

0000001,A,50 y este es el resultado, es decir, se actualizo la cantidad pero no se duplico el registro 0000001,A,20, me explico

que no se duplique

0000001,A,20
0000001,T,50
0000001,A,30 <----- registro duplicado
0000002,A,12
0000002,T,14

lo correcto

0000001,A,50 <---- se sumo la cantidad
0000001,T,50
0000002,A,12
0000002,T,14

pero de lo contrario, es decir, si no existe pues lo agrega al final del fichero.

es un poco complicado y es por esto que he recorrido a vuestra ayuda. si no he sido claro no dudeis en preguntar.

Manejo el Fichero con ADO+ODBC+Delphi6.

Salu2

guillotmarc 04-05-2004 14:35:25

Hola.

¿ Y que es lo que quieres saber exactamente ?. ¿ Como manejar archivos de texto ?, ¿ Como buscar duplicados ?, ...

Saludos.

@-Soft 04-05-2004 14:40:23

hola

bueno me imagino que se debe lanzar una consulta que determine si el registro existe y sumarle la cantidad o de lo contrario agregarlo pero yo nunca he manejado fichero plano y no se como hacerlo y es por esto que necesito una idea clara de ustedes que acumulan una basta experiencia y me propongan una solucion a dicho inconveniente, el proposito de esto es actualizar un fichero ya existente con otro fichero que tiene datos pero no todos y es por esto que no he tomado la opcion de reemplazar el fichero ya que si no tiene todos lo campos no me servira de nada.


Salu2

guillotmarc 04-05-2004 15:35:56

Hola.

Para manejar archivos planos, te recomiendo que utilizes un TStringList (consulta la ayuda de Delphi).

Mediante el método LoadFromFile, podrás cargarle los datos en el arhivo de texto, y mediante la propiedad Strings, podrás acceder a cada una de las filas, tan facilmente como si se tratará de una matriz.

Para detectar si en un fichero existe un elemento, yo simplemente haria un recorrido de todas las filas del Fichero. Como lo vas a hacer en memória (en el TStringList), será muy rápido.

Saludos.

@-Soft 05-05-2004 05:31:14

hola

bueno, pero necesito por lo menos un pequeñisimo ejemplillo que servira como punto de partida para armar la estructura del codigo necesario para poder hacer lo que se me ha propuesto, no obstante crees que pueda ser posible hacer esto por medio de una consulta bien condicionada, ya sabes if esto entonces aquello etc.

Salu2

jachguate 05-05-2004 06:10:26

el código es muy sencillo. Cargas el texto en un TStringList (con LoadFromFile). Con un ciclo vas recorriendo uno a uno los registros... hasta encontrar el adecuado... entonces extraes la cantidad, le sumas el valor adecuado, y rehaces la línea. Si el ciclo llega a su fin sin encontrarlo.. entonces insertas un registro nuevo.

Si el volumen de datos es alto, será mejor mantener la lista ordenada e implementar un algoritmo de busqueda binaria. Al no existir, insertar la nueva línea en el StringList en la posición adecuada para no perder el orden.

hasta luego.

;)

guillotmarc 05-05-2004 11:02:13

Hola.

Además de lo que comenta Juan Antonio, puedes encontrar ejemplos, tal como es habitual, en la propia ayuda de Delphi.

Escribe TStringList, y pulsa F1 encima. Entrarás en la ayuda del StringList. Entra en el enlace "See also" y en "Working with string lists" tienes todos los ejemplos que te puedan hacer falta : carga de un archivo de texto, recorrido, manipulación, grabación en un archivo, ...

Saludos.


La franja horaria es GMT +2. Ahora son las 09:53:15.

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