PDA

Ver la Versión Completa : TStringList y Record


blueicaro
25-10-2007, 12:56:31
Hola, espero explicar medianamente el cacao mental que tengo.
Por una parte tengo el objeto TStringList, de Delphi, que me permite tener cadenas en una lista, con todos los métodos y propiedades que conocemos.

Pero yo quiero crear una lista, que no son cadenas, sino que son un record, por ejemplo (puede que tenga un error de sintaxis pero no tengo el ejemplo aquí).

Mirecord record:

A: Integer;
B: Integer;
C : String;
end

Así que mis preguntas son:
¿Cómo puedo crear un "stringList" pero con la estructura de MiRecord?.
¿O quizás será mejor usar un array del tipo MIRecord definido sin dimensión y ir rellenadolo?

En el caso de crear el Array, ya puestos, sería mejor crear un objeto, con propiedades y métodos, que me hagan falta, así sería reutilizable, y más fácil de mantener según crece el proyecto.

Como veis estoy algo liado:D.

Gracias

Saludos
/BlueIcaro

Neftali [Germán.Estévez]
25-10-2007, 13:33:09
En ese caso deberías utilizar el puntero del StringList (propiedad Objects) para almacenar los objetos que quieres. Y en la cadena de String el valor que quieres utilizar para indexar; Suponiendo que vaya a estar ordenada y accedas por ese valor.

Si no vas a utilizar ningun valor para indexar el StringList, tal vez sería más adecuado un TObjectList o un TList; Seguramente el primero, donde puedes aprovechar el puntero para ir guardando tus records.

blueicaro
25-10-2007, 18:37:30
Gracias Neftali, voy a ver la ayuda a ver que saco en claro, sino volveré con más dudas (aviso :D)

/BLueIcaro

ixMike
29-10-2007, 20:49:54
Bueno, yo una vez hice algo similar, no con una estructura, sino con el tipo Integer. Pero tan sólo tendrías que cambiar los correspondientes "Integers" del código por "TTuEstructura".

Aquí está el enlace.

http://www.clubdelphi.com/foros/showpost.php?p=147587&postcount=2

Por cierto, no te fíes mucho de los métodos LoadFromFile y SaveToFile, creo que tenían algún que otro fallo, y tengo que cambiarlos para que usen BlockRead y BlockWrite (más rápido, efectivo y elegante).

Saludos.