function gb2py(hanzi:pchar):pchar;
var
Sfile:Tmemorystream;
pos,temp,ipos,len:integer;
py:array[0..20] of char;
begin
pos:=($fe-$a1)*(ord(hanzi[0])-$b0)+ord(hanzi[1])-$a1;
sfile:=Tmemorystream.create;
sfile.loadfromfile('C:\Program Files\Common Files\Kingsoft\Extract\Sound\gb2py.idx');
sfile.Seek($1608+pos*4,soFromBeginning);
sfile.Read(ipos,4);
sfile.Read(temp,4);
len:=temp-ipos;
sfile.Seek(ipos+1,soFromBeginning);
sfile.Read(py,len);
py[len-1]:=#0;
sfile.Free;
result:=py;
end;procedure TForm1.Button1Click(Sender: TObject);
var
a:pchar;
b:string;
begin
a:=nil;
strpcopy(a,'你好'); b:=strpas(gb2py(a)); edit1.Text :=bend;
点按钮时出现调试器异常通知:'Access violation at address 004081B5 in module'project1.exe.
var
Sfile:Tmemorystream;
pos,temp,ipos,len:integer;
py:array[0..20] of char;
begin
pos:=($fe-$a1)*(ord(hanzi[0])-$b0)+ord(hanzi[1])-$a1;
sfile:=Tmemorystream.create;
sfile.loadfromfile('C:\Program Files\Common Files\Kingsoft\Extract\Sound\gb2py.idx');
sfile.Seek($1608+pos*4,soFromBeginning);
sfile.Read(ipos,4);
sfile.Read(temp,4);
len:=temp-ipos;
sfile.Seek(ipos+1,soFromBeginning);
sfile.Read(py,len);
py[len-1]:=#0;
sfile.Free;
result:=py;
end;procedure TForm1.Button1Click(Sender: TObject);
var
a:pchar;
b:string;
begin
a:=nil;
strpcopy(a,'你好'); b:=strpas(gb2py(a)); edit1.Text :=bend;
点按钮时出现调试器异常通知:'Access violation at address 004081B5 in module'project1.exe.
try
strpcopy(a,'你好');
b:=strpas(gb2py(a));
edit1.Text :=b;
finally
freemem(a);
end;