我现在要从一个流中读数据(流中有很多的记录)
将记录保存到一个数组中,
然后输出数组。请问该如何做?
我是这样写的,但是出错了:function fromStreamToArray(sourceStream:TStream;var Arr:Array of myRecord):integer;
var
i:integer;
totlalLen:int64;
begin
result:= -1;
setlength(Arr,0); //这里出错
end;
将记录保存到一个数组中,
然后输出数组。请问该如何做?
我是这样写的,但是出错了:function fromStreamToArray(sourceStream:TStream;var Arr:Array of myRecord):integer;
var
i:integer;
totlalLen:int64;
begin
result:= -1;
setlength(Arr,0); //这里出错
end;
a:array of byte;
fs:tfilestream;
begin
try
fs:=tfilestream.create(paranstr(0),fmopenread+fmsharedenynone);
fs.seek(0,0);
setlength(a,100);
fs.read(a^,100);
finally
fs.free;
end;end;
type
TResultRecord = record
Key: Variant;
Value: Variant;
end;
TResultArray = array of TResultRecord;
function GetKeyArrayValue(sc: TfSource): TResultArray;
procedure AddValueToArrayResult(key, value: variant);
begin
SetLength(Result,(High(Result)-Low(Result)+2));
Result[High(Result)].Key := key;
Result[High(Result)].Value := value;
end;
var i: Integer;
begin
for i:=0 to 20-1 do
AddValueToArrayResult(i, i);
end;
多谢sweethzp(黄纸片)