L
luckymanman
Unregistered / Unconfirmed
GUEST, unregistred user!
//从文件流读出以0为结束符的字符串
procedure ReadNULLStr(const Offset: integer
var Result: pchar);
var
c: char;
P: pchar;
begin
P := Result;
FileStream.Position := Offset;
FileStream.Read(c, 1);
while c <> #0 do begin
P^ := c;//**************有时会出错
Inc(P);
FileStream.Read(c, 1);
end;
P^ := #0;//***************有时会出错
end;
调用如下:
var str: PChar;
begin
str := StrAlloc(512);
...
ReadNULLStr(Offset,str);//这里不停使用str变量
...
StrDispose(str);
end;
请问该函数有错吗?错在哪?为何有时会正常,有时会出错。是调用处出错还是函数本身有错呢?请指教
procedure ReadNULLStr(const Offset: integer
var Result: pchar);
var
c: char;
P: pchar;
begin
P := Result;
FileStream.Position := Offset;
FileStream.Read(c, 1);
while c <> #0 do begin
P^ := c;//**************有时会出错
Inc(P);
FileStream.Read(c, 1);
end;
P^ := #0;//***************有时会出错
end;
调用如下:
var str: PChar;
begin
str := StrAlloc(512);
...
ReadNULLStr(Offset,str);//这里不停使用str变量
...
StrDispose(str);
end;
请问该函数有错吗?错在哪?为何有时会正常,有时会出错。是调用处出错还是函数本身有错呢?请指教