将任何记录转换为字符串并返回?

时间:2012-06-08 22:35:49

标签: delphi serialization type-conversion delphi-xe2 record

如何将任何record类型转换为单个String并返回?也许将记录加载到流中并将其作为字符串读取?我正在使用的记录不会包含任何特殊类型 - 它们只使用简单的内容,例如StringIntegerPCharDWORD和{{ 1}}等等,没有类似于类或函数。

此字符串将进一步保存到各种位置,例如平面文本文件,数据库记录,通过网络发送等。字符串内容可以通过其他方式之间的其他方式传输,例如从中复制字符串文本文件并将其保存到数据库记录中。一般的想法是,字符串将足够兼容以保存在任何地方,移动它,并将其加载回其原始状态。我知道我需要能够识别它的类型并相应地分配它,而那部分我不需要帮助。

1 个答案:

答案 0 :(得分:7)

您可以使用RTTI序列化您的记录,从这里您可以使用XML,JSON或其他格式来保存记录数据。

如果您不想编写自己的方法来序列化记录,请尝试这些替代方案。

  • superobject(使用TSuperRttiContext类可以将记录序列化为JSON)
  • TKBDynamic
  • 来自Synopse的
  • SynCommons单位。
  • 来自Robert Love的
  • XmlSerial单位(对象和记录序列化以及反序列化为XML)