[Lazarus-es] buscar valor en array de record
José Mejuto
joshyfun en gmail.com
Mar Mayo 25 15:37:12 CEST 2010
Hello Paola,
Tuesday, May 25, 2010, 2:44:14 PM, you wrote:
PB> Hola José..
PB> tendrías algún ejemplo de tobjectloist? si cada elemento fuera un
PB> trecord, cómo buscaría algo dentro de c/elemento?... (si es que hay
PB> algún método sin ser buscar secuencialmente...)
PB> muchas gracias...
TObjectList te "obliga" a que cada registro sea un objeto, cosa que es
innecesaria en este caso. Si tienes que hacer este proceso muuuuchas
veces hay que optimizar, si sólo afectará unas 200 lineas o así, hazlo
sencillo, hasta haciendolo "mal" será muy rápido. No tiene sentido
ganar 100 ms. en una tarea que se repite cada 5 minutos.
Lo más sencillo es un array dinámico, lo creas de records en plan:
Cosa=record
Codigo: string;
descripcion: string;
cantidad: double;
LineasExtra: String o i es necesario TStringList
end;
En un for..loop pasas los datos a un record desde cada linea del
TStringList y el registro lo añades al dyn array:
arr: array of Cosa;
while ...do begin
SetLength(Arr,Length(Arr)+1);
MyCosa:=CamposTStringList;
Arr[High(arr)]:=MyCosa;
end;
El manejo de arrays dinámicos es muy parecido a un TStringList, etc...
--
Best regards,
José
More information about the Lazarus-es
mailing list