Delphi“流”实现文件加密器

http://tech.ddvip.com   2006年07月31日    社区交流

本文详细介绍Delphi“流”实现文件加密器

  数据流是面向对象程序设计语言中面向对象思想的典型体现,它彻底地取代了早期的利用函数实现输入输出的功能,克服了用函数实现输入输出功能的诸多弊端。简单来说,流就是建立在面向对象基础上的一种抽象的处理数据的工具。在流中,可定义一些处理数据的基本操作,如读取数据、写入数据等,程序员是对流进行操作,而不用关心流的另一头数据的真正流向。流不但可以处理文件,还可以处理动态内存、网络数据等多种数据形式。掌握好对流的操作在并程序中充分利用流的方便性,不仅能使在编写面向过程的程序时效率大大提高。本文以文件加密为例说明Delphi编程中流的概念及应用。

  一、流的基本概念

  在Delphi中,所有流对象的基类为TStream类,其中定义了所有流的共同属性和方法。

  TStream类中定义的属性介绍如下:

  (1)Size:此属性以字节为单位返回流中数据大小。

  (2)Position:此属性控制流中存取指针的位置。

  TStream类中定义的四个虚方法:

  (1)Read:此方法实现将数据从流中读出。

  函数原形为:

  Function Read(var Buffer;Count:Longint):Longint;virtual;abstract;

  参数Buffer为数据读出时放置的缓冲区,Count为需要读出的数据的字节数,该方法返回值为实际读出的字节数,它可以小于或等于Count中指定的值。

  (2)Write:此方法实现将数据写入流中。

  函数原形为:

  Function Write(var Buffer;Count:Lonogint):Longint;virtual;abstract;

  参数Buffer为将要写入流中的数据的缓冲区,Count为需要写入数据的长度字节数,该方法返回值为实际写入流中的字节数。

  (3)Seek:此方法实现流中指针的移动。函数原形如下:Function Seek(Offset:Longint;Origint:Word):Longint;virtual;abstract;参数Offset表示以Origint为基准指针移动的方向和字节数,为正表示指针从数据头向数据尾移动,为负表示指针从数据尾向数据头方向移动。参数Origint指出指针移动参照的基准,其可能的取值如下:a)soFrombeginning:Offset以数据开始处为基准移动,此时Offset必须大于或者等于零。b)soFromCurrent:Offset以指针的当前位置为基准。c)soFromEnd:Offset以数据结束的位置为基准。此时Offset必须小于或者等于零。该方法返回值为移动后指针的位置。

作者:文浩    责编:豆豆技术应用

正在加载评论...