我正在尝试写一些代码,它将读/写一个动态数组的对象到一个文件。对象代表java源代码的结构。我需要能够扫描整个源代码,并收集有关字段,方法和类的信息。我有一个算法,它可以做到这一点,结果保存在一个结构的TFieldStruc,TMethodStruc和TClassStruc。TCoreStruc(TObject的后代)的所有后代。Java源代码需要几分钟的时间来扫描并生成虚拟结构。因此,我的应用程序一次扫描所有源代码,并将其保存为更易于访问的格式,当IDE启动时加载该格式。
是否有一种方法(除了将对象“导出到字符串”,然后在加载时重新创建它们之外)可以将TFieldStruc、TMethodStruc和TClassStruc的整个三个数组流到一个文件中,以便以后可以读取它们?
我尝试过阅读'FileofTFieldStruc..'和TFileStream以将对象保存到文件并将其读回,但在这两种情况下,我在调试器中得到“不可访问的值”,然后在再次访问对象时出现“访问冲突”错误。如果有人对如何解决此问题有想法,将不胜感激。以下是TCodeStruc的代码,如果它的任何字段/方法可能会导致问题:
type
TCoreStruc = class(TObject)
public
LowerPointer : integer;
HigherPointer : integer;
Line : integer;
Word : integer;
Char : integer;
CoreType : ansistring;
IsPublic : boolean;
IsPrivate : boolean;
IsStatic : boolean;
IsFinal : boolean;
Name : ansistring;
NestedStruc : TCoreStruc;
constructor Create(Name, CoreType : ansistring; NestedStruc : TCoreStruc; IsPublic, IsPrivate, IsStatic, IsFinal : boolean);
procedure UpdateValues(NestedStruc : TCoreStruc; IsPublic, IsPrivate, IsStatic, IsFinal : boolean);
procedure SetPosition(Line, Word, Char : integer);
end;
1条答案
按热度按时间1u4esq0p1#
下面是一个使用您的结构的示例。
关于这一点,请注意以下几点: