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

Jer*_*dge 7 delphi serialization record type-conversion delphi-xe2

如何将任何record类型转换为单个String并返回?也许将记录加载到流中并将其作为字符串读取?我使用不会有任何特殊类型的记录包括-他们只是用简单的事情一样String,Integer,PChar,DWORD,和Array of [String]等,并没有像类或函数.

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

RRU*_*RUZ 7

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

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

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

  • @KenWhite我使用RTTI来序列化记录没有问题,但确实,可能存在一些难以序列化的复杂记录,无论如何我不知道你的意思是什么`..你怎么转换包含重载运算符或方法的记录?因为当您序列化记录或对象时,您只需要保留字段和/或属性. (2认同)
  • @Ken PChar有点胡说八道.当然没有人经常把它们记录在案.请改用字符串.但是所有其他类型当然都受到序列化框架的很好支持.这是常规的面包和黄油适用于此类框架. (2认同)