3
type
myrec = record
id:dWord;
name:array[0..31] of WideChar;
three:dword;
count:dword;
ShuXing:Single;
ShuXing2:dword;
ShuXing3:dWORD;
end;
var
Form1: TForm1;
mystr:TMemoryStream;
nowmyrec:myrec;
implementation
USES Rtti;
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
var
rttiContext: TRttiContext;
rttiType: TRttiType;
fields: TArray<TRttiField>;
item: myrec;
i:word;
begin
mystr:=TMemoryStream.Create;
mystr.LoadFromFile(ExtractFilePath(Application.exename)+'1.data');
mystr.Position:=20;
mystr.readbuffer(nowmyRec,88);
rttiType := rttiContext.GetType(TypeInfo(myRec));
fields := rttiType.GetFields;
for i := low(fields) to high(fields) do
begin
Memo1.Lines.Add(fields[i].GetValue(@nowmyRec).ToString);
end;
end;
end.
myrec.name是中文字符,myrec.name的長度是64字節,我無法讀取myrec.name備忘錄,請幫助我!delphi2010遍歷rtti的記錄
我正在閱讀一個十六進制 – babaloveyou 2011-03-05 12:08:31
我在閱讀十六進制數據,它必須使用tstream! 「rec.name:='你好堆棧溢出':不能適合我 – babaloveyou 2011-03-05 12:13:52
它*是*漂亮;-) – 2011-03-05 12:40:24