找了很久都没有找到可以使用的例子~~~~新接触Delphi,还有很多不明白的地方。我的要求就是,从文件中的指定位置读出一个或者几个数据来,给变量。要求Delphi 7 可以兼容的代码。最好每行都有详细的解释。。

解决方案 »

  1.   

    http://topic.csdn.net/u/20071108/10/9c238305-ad16-40c3-9781-c935bba78b7d.html
      

  2.   

    procedure TForm1.btn1Click(Sender: TObject);
    var
      F: File;
      Num: Integer;
    begin
      AssignFile(F, 'd:\11.dat');
      Reset(f, 1);  Seek(F, 1000);        
      BlockRead(F, Num, SizeOf(Num));  CloseFile(F);
    end;
      

  3.   

    var 
        F:   File; 
        Num:   Integer; 
    begin 
        AssignFile(F,   'd:\11.dat '); 
        Reset(f,   1);     Seek(F,   1000);      //这个是什么意思啊~           
        BlockRead(F,   Num,   SizeOf(Num)); //这个是什么意思啊~      CloseFile(F); 
    end; 
      

  4.   

    var   
            F:       File;   
            Num:       Integer;   
    begin   
            AssignFile(F,       'd:\11.dat   ');   
            Reset(f,       1);           Seek(F,       1000);             //这个是什么意思啊~                       
            BlockRead(F,       Num,       SizeOf(Num));   //这个是什么意思啊~             CloseFile(F);   
    end; 楼上的大大能否解释下??本人比较笨,我就会用普通变量。。其他形式的就不大会鸟比如  abd:=什么什么的形式~
      

  5.   

    通过文件流读取
    var
    F:Tfilestream;//声明一个文件流
    begin
     F:=Tfilestream.Create(filename,Fmopenread or FmShareDenyNone); //创建文件流实例,filename是你要读取的文件的路径,Fmopenread or FmShareDenyNone是赋给只读属性和共享属性
     F.Seek(offset,sofrombeginning);   //定位指针倒你要读取二进制文件的偏移地址。
      F.Read(buffer,S);   //读取 buffser为一个缓冲区,S为你读取数据大小,就是从指针所处的位置开始算。
     
    我这里只是简单的写了一下,你自己声明这些变量吧。
      

  6.   

    F:Tfilestream;//声明一个文件流 
    用完了别忘了释放。
      

  7.   

    var
      fileName:String;
      Cnt,i,j:Integer;
      MemStream:TMemoryStream;
      temp:Array of byte;
    begin
      if  OpenDialog1.Execute then
      begin
        Edit1.Text:=OpenDialog1.FileName;
        MemStream:=TMemoryStream.Create;
        MemStream.LoadFromFile(OpenDialog1.FileName);
        Cnt:=MemStream.Size;
        MemStream.Position:=0;
        SetLength(temp,Cnt);
        MemStream.ReadBuffer(Pointer(temp)^,Cnt);
        MemStream.free;
      end;
    这个temp估计就是你想要的结果了