PDA

Ver la Versión Completa : Comparar Lineas de un Memo con un texto


kirios
21-03-2012, 15:09:05
Hola!
Mi idea es la siguiente, tengo que hacer una especie de control de ventas, e ir anotando cuánto se vendió de cada producto. Al final del programita, tengo un memo en el que aparece lo que se compra en el momento, de la siguiente manera

1 producto A
2 producto B
1 producto C

etc...

y eso se tendria que guardar en un archivo de texto. Lo que yo intente es hacerlo con la funcion Append, pero no me gusto porque me queda una tira larga de productos vendidos, muchas veces repetidos. Entonces, lo que necesitaria es que se lea la primer linea del memo, se compare con todas las lineas del archivo de texto, y si encuentra una igual, que solo cambie el número de la izquierda. Con la funcion copy, pos, etc puedo seleccionar solamente el nombre del producto y comparar desde ahi, el problema esta cuando quiero pasar a la segunda linea del memo. Es decir, leer la SEGUNDA linea del memo, compararla con todas las lineas del texto, etc...

Alguna idea? graciasss

look
21-03-2012, 15:14:11
Hola!
Mi idea es la siguiente, tengo que hacer una especie de control de ventas, e ir anotando cuánto se vendió de cada producto. Al final del programita, tengo un memo en el que aparece lo que se compra en el momento, de la siguiente manera

1 producto A
2 producto B
1 producto C

etc...

y eso se tendria que guardar en un archivo de texto. Lo que yo intente es hacerlo con la funcion Append, pero no me gusto porque me queda una tira larga de productos vendidos, muchas veces repetidos. Entonces, lo que necesitaria es que se lea la primer linea del memo, se compare con todas las lineas del archivo de texto, y si encuentra una igual, que solo cambie el número de la izquierda. Con la funcion copy, pos, etc puedo seleccionar solamente el nombre del producto y comparar desde ahi, el problema esta cuando quiero pasar a la segunda linea del memo. Es decir, leer la SEGUNDA linea del memo, compararla con todas las lineas del texto, etc...

Alguna idea? graciasss

y porque no solo haces todo eso en una tabla temporal y al final limpias el memo y lo vuelves a cargar con los datos de la tabla cada vez que se actualice la info

kirios
21-03-2012, 15:18:58
y porque no solo haces todo eso en una tabla temporal y al final limpias el memo y lo vuelves a cargar con los datos de la tabla cada vez que se actualice la info

Ya tengo todo el programa hecho, no lo puedo modificar ahora...Si tenes alguna idea de cómo resolverlo de esa manera, te agradeceria. Pense hacerlo con dos ciclos for anidados, uno que recorra las lineas del memo y otro las lineas del texto. pero no hay un una propiedad tipo MEMO.LINES[I]... o si? esa es mi duda

Caro
21-03-2012, 15:27:03
Pense hacerlo con dos ciclos for anidados, uno que recorra las lineas del memo y otro las lineas del texto. pero no hay un una propiedad tipo MEMO.LINES[i]... o si? esa es mi duda

Hola kirios, si existe esa propiedad, puedes recuperar tu archivo en un StringList y utilizar dos ciclos anidados como dices.


//ejemplo de recorrer Memo linea a linea
for i:=0 to memo.Lines.Count-1 do
showmessage(memo.Lines[i]);

//ejemplo del StringList
var
sl : TStringList;
begin
sl := TStringList.Create;
//recuperamos el archivo en el StringList
sl.LoadFromFile('c:\archivo.txt');

for i:=0 to sl.Count-1 do
showmessage(sl[i]);


Saluditos

kirios
21-03-2012, 15:30:47
Hola kirios, si existe esa propiedad, puedes recuperar tu archivo en un StringList y utilizar dos ciclos anidados como dices.


//ejemplo de recorrer Memo linea a linea
for i:=0 to memo.Lines.Count-1 do
showmessage(memo.Lines[i]);

//ejemplo del StringList
var
sl : TStringList;
begin
sl := TStringList.Create;
//recuperamos el archivo en el StringList
sl.LoadFromFile('c:\archivo.txt');

for i:=0 to sl.Count-1 do
showmessage(sl[i]);


Saluditos

oooo genial, no sabia que existia esa propiedad. Muuuuchas gracias! :D