您现在的位置是:首页 >

excel数据管理功能包括 DELPHI基础教程:开发Delphi对象式数据管理功能(一)[5]

火烧 2021-08-23 11:43:34 1039
DELPHI基础教程:开发Del hi对象式数据管理功能(一)[5]   ⑵ Write方法  Write方法从内存流内部缓冲池的当前位置开始写入二进制数据 其实现如下   fu ctio TMemo

DELPHI基础教程:开发Delphi对象式数据管理功能(一)[5]  

  ⑵ Write方法

  Write方法从内存流内部缓冲池的当前位置开始写入二进制数据 其实现如下

  function TMemoryStream Write(const Buffer; Count: Longint) Longint;

  var

  Pos: Longint;

  begin

  if (FPosition >= ) and (Count >= ) then

  begin

  Pos := FPosition + Count;

  if Pos > then

  begin

  if Pos > FSize then

  begin

  if Pos > FCapacity then

  SetCapacity(Pos)

  FSize := Pos;

  end;

  System Move(Buffer Pointer(Longint(FMemory) + FPosition)^ Count)

  FPosition := Pos;

  Result := Count;

  Exit;

  end;

  end;

  Result := ;

  end;

  Buffer中存储要写入流的二进制数据 如果要写入的数据的字节超出了流的内存池的大小 则调用SetCapacity方法再分配内存 然后用内存复制函数将Buffer中的数据复制到FMemory中 接着移动位置指针 并返回写入数据的字节数 分析这段程序可以知道 FCapacity的值和FSize的值是不同的

  ⑶ Clear方法

  Clear方法消除内存流中的数据 将Memory属性置为nil 并将FSize和FPosition 的值设为 其实现如下

  procedure TMemoryStream Clear;

  begin

  SetCapacity( )

  FSize := ;

  FPosition := ;

  end;

  ⑷ LoadFromStream和LoadFromFile方法

  LoadFromStream方法首先根据传入的Stream的Size属性值重新分配动态内存 然后调用Stream的ReadBuffer方法往FMemory中复制数据 结果Stream的全部内容在内存中有了一份完整拷贝 其实现如下

excel数据管理功能包括 DELPHI基础教程:开发Delphi对象式数据管理功能(一)[5]

  procedure TMemoryStream LoadFromStream(Stream: TStream)

  var

  Count: Longint;

  begin

  Stream Position := ;

  Count := Stream Size;

  SetSize(Count)

  if Count <> then Stream ReadBuffer(FMemory^ Count)

  end;

  LoadFromFile与LoadFromStream是一对方法 LoadFromFile首先创建了一个TFileStream对象 然后调用LoadFromStream方法 将FileStream文件流中的数据写入MemoryStream中

  返回目录DELPHI基础教程

      编辑推荐

      Java程序设计培训视频教程

       J EE高级框架实战培训视频教程

  Visual C++音频/视频技术开发与实战

  Oracle索引技术

  ORACLE G数据库开发优化指南

  Java程序性能优化 让你的Java程序更快 更稳定

  C嵌入式编程设计模式

  Android游戏开发实践指南

lishixinzhi/Article/program/Delphi/201311/25108  
永远跟党走
  • 如果你觉得本站很棒,可以通过扫码支付打赏哦!

    • 微信收款码
    • 支付宝收款码