newfile.free; //?
      end;
      newfile.Free;   //?

解决方案 »

  1.   

    procedure TForm1.Button1Click(Sender: TObject);
    var existedFile:string;
    var tes:array of char;
    var reg:TRegistry;
    var newfile:TFileStream;
    begin
    existedFile:='d:\1.txt';
          newfile:=TFileStream.Create(existedFile,fmOpenRead);
          reg:=TRegistry.Create;
          try
            if  reg.OpenKey('Software\J-Studio',true)
            then
            begin
              setlength(tes,newfile.size);
              newfile.Read(tes,newfile.size);
              reg.WriteBinaryData('test',tes,newfile.size);
            end;
          finally
            reg.Destroy;
            newfile.free;
          end;
    //      newfile.Free;
    end;end.还错。为什么呀?
      

  2.   

    procedure TForm1.Button1Click(Sender: TObject);
    var existedFile:string;
    var tes:array of char;
    var reg:TRegistry;
    var newfile:TFileStream;
    begin
    existedFile:='d:\1.txt';//这个文件存在不存在,如果不存在,会出现错误
          newfile:=TFileStream.Create(existedFile,fmOpenRead);
          reg:=TRegistry.Create;
          try
            if  reg.OpenKey('Software\J-Studio',true)
            then
            begin
              setlength(tes,newfile.size);
              newfile.Read(tes,newfile.size);
              reg.WriteBinaryData('test',tes,newfile.size);
            end;
          finally
            reg.Destroy;
            newfile.free;
          end;
          
    end;end.
      

  3.   

    procedure TForm1.Button1Click(Sender: TObject);
    var existedFile:string;
    var tes:array of char;
    var reg:TRegistry;
    var newfile:TFileStream;
    begin
    existedFile:='d:\1.txt';//这个文件存在不存在,如果不存在,会出现错误
          newfile:=TFileStream.Create(existedFile,fmOpenRead);
          reg:=TRegistry.Create;
          try
            if  reg.OpenKey('Software\J-Studio',true)
            then
            begin
              setlength(tes,newfile.size);
              newfile.Read(tes,newfile.size);
              reg.WriteBinaryData('test',tes,newfile.size);
            end;
          finally
            reg.free;用free比用destroy好
            newfile.free;
          end;
        //删除重复调用
          
    end;end.
      

  4.   

    to flyingice(ygxdha) 
    文件是存在的,
    是在newfile.free时会有问题。
    显示
    EAccessViolation with message 'Access violation at address 00404B6C in module 'launcher.exe'.Write of address 00CB7359'