我用
var
reg :Tregistry;
lsname:integer;
begin
reg:=Tregistry.Create ;
reg.RootKey :=HKEY_CURRENT_USER;
if reg.OpenKey('\Software\Microsoft\Windows\CurrentVersion\Internet settings\connections',true) then
begin
   lsname:=reg.ReadBinaryData('SavedLegacySettings',datafile,2000);
   reg.CloseKey ;
end;
reg.Free ;
end;
请问用readbinarydata读出的datafile如何用,如果这个串要改动,如何把一个串负进datafile去。(我知道用writebinarydata函数,只是不知道如何把一个串加入buffer中)谢谢,再线急用

解决方案 »

  1.   

    1、DataFile是一个PChar的类型,在一定程序上你可以当成String来用。
    2、var buffer:PChar;
       getmem(buffer,255);
       buffer:='this is a test';
       reg.WriteBinaryDate('SavedLegacySettings',buffer,255);
       FreeMem(buffer);
      

  2.   

    除了楼上的,你还可以定义一个p:pbyte指针,用getmem申请内存,用inc,dec等操作来移动指针指向的位置。p^ 你可以随便读写。
      

  3.   

    我试了,不行呀,定义成file不报错,定义成pchar报错。我想看看buffer中是什么内容,我要修改这里面的东西,比如用memo.lines.add(something),其中的something怎么转换呀。
      

  4.   

    你把 li_zhifu(东北人) 的代码作如下修改看看!
    var 
       buffer:PChar;
       getmem(buffer,255);
       buffer:='this is a test';
       reg.WriteBinaryDate('SavedLegacySettings',buffer^,255);
       FreeMem(buffer);