2010-09-20 30 views
7

En Java, se puede guardar un objeto serializable en un archivo y cargar un objeto desde ese archivo. ¿Podemos hacer esto en Delphi? Si es así, ¿cómo?Cómo guardar un objeto en un archivo en Delphi

+2

En Java no es posible para ningún objeto: la clase del objeto debe declarar que implementa Serializable (pero eso es todo, es solo una interfaz de etiquetado sin ningún método). Lo bueno es que Java serializa todos los atributos de objetos por defecto, independientemente de su modificador de acceso (no se requiere codificación RTTI "DIY"). – mjn

+0

ya he editado mi pregunta – rajeemcariazo

Respuesta

6

Si preguntas "¿Podemos hacer esto en Delphi?" - la respuesta es: . Supongo que quieres saber, ¿CÓMO se puede hacer esto en Delphi? Bueno, esto depende de qué es lo que quieres serializar:

Si desea realizar una serie

  • sus propios objetos de datos, entonces se podría escribir sus propias funciones SaveTo/LoadFrom
  • componentes, a continuación, puede usar el component streaming system
  • común objeto desconocido, entonces necesita algunas técnicas RTTI y los objetos deben publicar sus propiedades serializables
+3

La visibilidad publicada solo es necesaria cuando se utiliza el RTTI de "estilo antiguo". A partir de D2010, el RTTI ampliado no requiere que las propiedades tengan visibilidad publicada para poder enumerarlas. Además, puede enumerar muchas más propiedades que "solo". –

3

El primer artículo relacionado con Andre parece (tal vez desnatada al rápido) para utilizar el estilo pre-D2010 "viejo" RTTI (Run-Time Tipo de información), que es depende de las propiedades que tienen visibilidad publicada para poder enumerarlas.

A partir de D2010 Delphi tiene un RTTI extendido completamente nuevo (construido sobre el antiguo) que no requiere visibilidad publicada y hace mucho más que enumerar propiedades. DeHL, como se describe en el segundo artículo vinculado a Andre, utiliza el nuevo RTTI, y si está buscando una biblioteca, también recomendaría esta biblioteca.

Si prefiere construir su propia, puede echar un vistazo a un artículo en XML-serialización utilizando la nueva RTTI por Robert Amor: http://robstechcorner.blogspot.com/2009/10/xml-serialization-basic-usage.html

Robert Love también tiene una buena visión general de artículos RTTI: http://robstechcorner.blogspot.com/2009/09/so-what-is-rtti-rtti-is-acronym-for-run.html

y para algunas más ideas sobre lo que puede hacerse con el nuevo estilo de RTTI, echar un vistazo a

Practical usage for Delphi's new RTTI - Attributes,Values y Why should I care about RTTI in Delphi?

2

NativeXML NativeXML website tiene la capacidad de almacenar/recuperar objetos en un formato XML, lo que le brinda capacidad de manipulación adicional sobre la metodología RTTI. Manipulación rápida y fácil de documentos XML y la capacidad adicional de guardar/cargar objetos persistentes.

Cuestiones relacionadas