把一个注册表文件*.reg转换成*.txt文件,然后用TStringList把它读出来就
行了,可是问题出来了,用RenameFile函数直接该名是不行的。其实大家可以
试试,现导出一个*.reg文件,然后重命名为*.txt,双击鼠标,感觉和文本文
件一样,可是在程序里就不行了还要请教大家。

解决方案 »

  1.   

    用个memo吧,让他不可见啊,读入*.reg,memo的lines属再付给TStringList啊
      

  2.   

    .reg is just .txt file type
      

  3.   

    TStringList.LoadFromFile('*.reg');
    不行么?
      

  4.   

    renamefile('e:\1.reg','e:\1.txt');
    也可以用啊?有什么不同?
    reg文件本质是文本文档(txt),只是reg关联了regedit.exe,而txt关联的是notepad.exe,所以打开的方式不同
      

  5.   

    真的不行,在我的机子上,用TStringList.LoadFromFile('*.reg'),和renamefile('e:\1.reg','e:\1.txt'),难到你们的机子可以,我装的是windows2000 
      

  6.   

    当然,直接读更不可能,对了我用的是Delphi7
      

  7.   

    一下是我在大富翁别人给我的回答,只是有个问题,就是如果注册文件包含中文字符就会出现乱码
    var
      ts:tstringlist;
      reg_file1,reg_file2:file of byte;
      filename:string;
      fs,i,j:integer;
      b:byte;
    begin
      filename:='d:\network.txt';
      assignfile(reg_file1,'d:\network.reg');
      reset(reg_file1);
      assignfile(reg_file2,filename);
      rewrite(reg_file2);
      fs:=filesize(reg_file1);
      j:=0;
      for i:=2 to fs-1 do
      begin
        seek(reg_file1,i);
        read(reg_file1,b);
        if b=0 then continue;
        seek(reg_file2,j);
        write(reg_file2,b);
        j:=j+1;
      end;
      closefile(reg_file2);
      closefile(reg_file1);
      ts:=tstringlist.create;
      ts.loadfromfile(filename);
      memo1.Lines:=ts;
    end;