更新时间:2023-02-02 18:51:55
先写一个数组的长度,和旁边的阵列数据:
键入
TItem =整数;
TItemArray = TItem阵列;VAR
流:TStream;
编曲:TItemArray;
L:长字;开始
编曲:= TItemArray.Create(1,2,3);
//保存
流:= TFileStream.Create('C:\\ TEMP \\ TEST.bin,烧写',fmCreate);
L:=长度(ARR);
Stream.WriteBuffer(L,一下SizeOf(L));
Stream.WriteBuffer(指针(ARR)^,L *一下SizeOf(TItem));
Stream.Free;
// 加载
流:= TFileStream.Create('C:\\ TEMP \\ TEST.bin,烧写',fmOpenRead);
Stream.ReadBuffer(L,一下SizeOf(L));
SetLength函数(编曲,L);
Stream.ReadBuffer(指针(ARR)^,L *一下SizeOf(TItem));
Stream.Free;
结束;
please can someone help me in saving and loading its Dynamic array from a Stream
const
iGlobHolderCount = 100;
type
TFiLeSpec = record
iSize: Integer;
end;
TFileSpecLst = array of TFiLeSpec;
TFiLeSpecList = record
iMin: Integer;
iMax: Integer;
iCount: Integer;
FileSpecLst: TFileSpecLst;
end;
var
FFileSpec: array of TFiLeSpec;
FFileSpecList: array [1 .. iGlobHolderCount] of TFiLeSpecList;
Write first the length of an array, and next the array data:
type
TItem = Integer;
TItemArray = array of TItem;
var
Stream: TStream;
Arr: TItemArray;
L: LongWord;
begin
Arr:= TItemArray.Create(1, 2, 3);
// To save
Stream:= TFileStream.Create('C:\Temp\test.bin', fmCreate);
L:= Length(Arr);
Stream.WriteBuffer(L, SizeOf(L));
Stream.WriteBuffer(Pointer(Arr)^, L * SizeOf(TItem));
Stream.Free;
// To load
Stream:= TFileStream.Create('C:\Temp\test.bin', fmOpenRead);
Stream.ReadBuffer(L, SizeOf(L));
SetLength(Arr, L);
Stream.ReadBuffer(Pointer(Arr)^, L * SizeOf(TItem));
Stream.Free;
end;