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)
-   -   Sumar el contenido de un Memo (https://www.clubdelphi.com/foros/showthread.php?t=52834)

RoyTan 01-02-2008 10:14:16

Sumar el contenido de un Memo
 
Saludos.

Tengo una base de datos Dbf.
Y en ella un campo Memo que contiene números.
Mi pregunta es… ¿Se pueden sumar esos números?
Y si es así ¿Cómo?

Gracias.

Neftali [Germán.Estévez] 01-02-2008 11:13:32

Puedes acceder a las líneas del meno con:

Código Delphi [-]
  memo.Lines[0]
  memo.lines[1]
  ....

Eso te devolverá strings.

Para convertirlos a enteros puedes hacer:

Código Delphi [-]
  i := StrToInt(memo.lines[0]);
  ....


Por lo tanto podrías sumar las líneas usando...

Código Delphi [-]
  result := 
    StrToInt(memo.lines[0]) + 
    StrToInt(memo.lines[1]) + 
    StrToInt(memo.lines[2]) + 
    ...

Esto te puede servir de guía; Deves tener en cuenta cuantas líneas hay en el memo; Que relamente sean números (sino la conversion con StrToInt fallará),...

RoyTan 01-02-2008 14:55:50

Gracias Neftali por contestar.

El problema es que nunca sé cuantos registros tengo en el memo.
Lo mismo tengo 5 que 100 y no se como recorrerlos para sumarlos.

Gracias y perdona mi torpeza, pero es que llevo 3 horas dándole vueltas.

Saludos.

Ivanzinho 01-02-2008 15:14:36

Con la propiedad TMemo.Lines.Count puedes saber cuantas líneas tiene el componente TMemo, luego solo tienes que recorrelas como te comento neftali y aplicar el algoritmo conveniente.

Un saúdo.

Delphius 01-02-2008 15:16:48

Hola RoyTan,

Una manera de recorrerlo es emplear for:
Código Delphi [-]
suma := 0;
for i:= 0 to Memo1.Lines.Count - 1 do
  inc(suma, StrToInt(Memo1.Lines[i]);

Lo puse de memoria, no tengo Dephi a mano en estos momentos.

Ivan.... no se vale... yo estaba respondiendo al chico... XD.

Saludos,

RoyTan 02-02-2008 01:05:20

Perfecto, gracias a todos.

Y perdonad mi tardanza a la hora de contestar, pero he tenido que ausentarme y no he podido hacerlo antes.


Gracias de nuevo.


La franja horaria es GMT +2. Ahora son las 14:01:05.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi