我想在 X 部分字符串中拆分一个字符串。
到目前为止,这是我的代码:
procedure SplitFile(var a: StringArray; len: integer; fileString: AnsiString; numberParts: integer);
var
i, Rest, partSize: integer;
tmp: AnsiString;
begin
Rest := len mod numberParts;
SetLength(a, numberParts);
partSize := (len - Rest) div numberParts;
numberParts := numberParts - 1;
for i := 0 to numberParts do
begin
// Get access violation here
CopyMemory(@a[i][1], @filestring[i * partSize], partSize);
end;
if Rest <> 0 then
CopyMemory(@a[numberParts][numberParts*partSize], @filestring[numberParts*partSize], Rest);
end;
我在这一行遇到访问冲突:
CopyMemory(@a[i][1], @filestring[i * partSize], partSize);
我不确定错误到底是在哪里引起的。我如何获得a[i]的地址,不是@a[i][1]吗?并在第一个循环中尝试访问@filestring[i* partSize]时无论如何都会导致错误,因为它会是 0?
我希望有人能给我解释一下。
谢谢