记录我定义这个包装记录:迭代通过与指数
TReplayData = packed record
GameMode : Byte;
VersionReplayCreation : Integer;
BeatMapMD5Hash : String;
PlayerName : String;
NumberOf300s : Short;
NumberOf100s : Short;
NumberOf50s : Short;
NumberOfGekis : Short;
NumberOfKatus : Short;
NumberOfMisses : Short;
TotalScore : Integer;
GreatestCombo : Short;
Perfect : Byte;
ModsUsed : Integer;
LifeBarGraph : String;
TimeStamp : Long;
LengthInBytes : Integer;
ReplayData : TByteArray;
Unknown : Long;
end;
我想填补它(伪 /不工作):
for i := 0 to SizeOf(TReplayData) - 1 do
begin
CopyMemory(ReplayData[i], AReplayBuffer + SizeOf(ReplayData[i]), SizeOf(ReplayData[i]));
end;
这显然是行不通的。 AReplayBuffer是Char的一个数组,它由所有需要的数据(排序)组成。
我怎么能在一个循环中填充结构/有甚至有办法吗?
如何获得char数组?如果你在某个地方序列化它,那么以相同的方式反序列化它可能是一个好主意。 – DNR