此处所列的文章均是我自己从国外的网站摘抄并翻译的,由于英文水平有限,里面肯定有不少错漏.翻译这些东西没有其他的什么用途,只是提高自己的英语阅读能力和编程技术水平而已     

TFiler, TWriter的源代码

  TFiler = class(TObject)
  private
    FStream: TStream;//流, 将FBuffer缓冲区的内容写入流
    FBuffer: Pointer; //内存
    FBufSize: Integer;//内存大小
    FBufPos: Integer;
    FBufEnd: Integer;
    FRoot: TComponent;
    FLookupRoot: TComponent;
    FAncestor: TPersistent;
    FIgnoreChildren: Boolean;


constructor TFiler.Create(Stream: TStream; BufSize: Integer);
begin
  FStream := Stream;
  //FBuffer是一个指针
  GetMem(FBuffer, BufSize);
  FBufSize := BufSize;
end;

destructor TFiler.Destroy;
begin
  if FBuffer <> nil then FreeMem(FBuffer, FBufSize);//释放内存.
end;

 

    FRoot: TComponent;
    FLookupRoot: TComponent;
    FAncestor: TPersistent;
    FIgnoreChildren: Boolean;

 

procedure TWriter.WriteBuffer; //将FBuffer缓冲区的内容写入流,同时FBuffer的当前位置为0.

begin
  FStream.WriteBuffer(FBuffer^, FBufPos);
  FBufPos := 0;
end;

function TWriter.GetPosition: Longint;
begin
  Result := FStream.Position + FBufPos;
end;

procedure TWriter.FlushBuffer;
begin
  WriteBuffer;
end;

 

posted @ 2010-11-14 22:22  AppleAndPear  阅读(350)  评论(0编辑  收藏  举报