Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   Comparar Lineas de un Memo con un texto (https://www.clubdelphi.com/foros/showthread.php?t=78120)

kirios 21-03-2012 15:09:05

Comparar Lineas de un Memo con un texto
 
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

Cita:

Empezado por kirios (Mensaje 428150)
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

Cita:

Empezado por look (Mensaje 428152)
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

Cita:

Empezado por kirios (Mensaje 428155)
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.

Código Delphi [-]
//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

Cita:

Empezado por Caro (Mensaje 428156)
Hola kirios, si existe esa propiedad, puedes recuperar tu archivo en un StringList y utilizar dos ciclos anidados como dices.

Código Delphi [-]
//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


La franja horaria es GMT +2. Ahora son las 09:33:12.

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