如何用blockwrite在文件的指定位置写入新的数据阿?

解决方案 »

  1.   

    用seek()改变文件变量的当前位置var
       f: file of Byte;
       size : Longint;
       S: string;
       y: Integer;
     begin
       if OpenDialog1.Execute then
       begin
         AssignFile(f, OpenDialog1.FileName);
         Reset(f);
         size := FileSize(f);
         S := 'File size in bytes: ' + IntToStr(size);
         y := 10;
         Canvas.TextOut(5, y, S);
         y := y + Canvas.TextHeight(S) + 5;
         S := 'Seeking halfway into file...';
         Canvas.TextOut(5, y, S);     y := y + Canvas.TextHeight(S) + 5;
         Seek(f,size div 2);
         S := 'Position is now ' + IntToStr(FilePos(f));
         Canvas.TextOut(5, y, S);
         CloseFile(f);
       end;
     end;
      

  2.   

    begin
      ...
      AssignFile(Ftrans, filename);
      ReWrite(Ftrans);
      Recelen:=Recv(ReceSocket, BlockBuf, BlockLen,0);
      while (not StopTrans) and (Recelen>0) do
      begin
        BlockWrite(Ftrans,BlockBuf[0],Recelen);
        Applicatoin.ProcessMessage;
        Recelen:=Recv(ReceSocket, BlockBuf, BlockLen,0);
      end;
      ...
      CloseFile(Ftrans);
      ...
    end.