unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Memo1: TMemo;
Button1: TButton;
Button2: TButton;
Button3: TButton;
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
var
mStream: TMemoryStream;
procedure TForm1.FormCreate(Sender: TObject);
//程序开始先创建一个准备要测试的文件
var
strList: TStringList;
begin
strList := TStringList.Create;
strList.Add('aaaaaaaa');
strList.Add('bbbbbbbb');
strList.Add('cccccccc');
strList.Add('dddddddd');
strList.SaveToFile('c:\temp\test.txt');
strList.Free;
{同时建立内存流}
mStream := TMemoryStream.Create;
end;
procedure TForm1.Button1Click(Sender: TObject);
//通过流读文件到 Memo
begin
mStream.LoadFromFile('c:\temp\test.txt'); {把文件读入内存流}
Memo1.Lines.LoadFromStream(mStream); {把内存流载入 Memo1}
end;
procedure TForm1.Button2Click(Sender: TObject);
//用字符指针读取流中的内容
var
pc: PChar;
begin
pc := mStream.Memory; {把字符指针指向内存流}
ShowMessage(pc[0]); {a; 第一个字符}
ShowMessage(pc[10]); {b; 这个第二行的第一个字符; 每行8个字再加换行与回车共10个字符}
ShowMessage(pc[20]); {c}
ShowMessage(pc[30]); {d}
end;
procedure TForm1.Button3Click(Sender: TObject);
//从流读入到缓冲区
var
buffer: array[0..2] of Char; {定义个字符缓冲区}
begin
mStream.Seek(0, soFromBeginning);
mStream.Read(buffer, SizeOf(buffer));
ShowMessage(buffer); {aaa}
mStream.Seek(10, soFromBeginning);
mStream.Read(buffer, SizeOf(buffer));
ShowMessage(buffer); {bbb}
mStream.Seek(20, soFromBeginning);
mStream.Read(buffer, SizeOf(buffer));
ShowMessage(buffer); {ccc}
mStream.Seek(30, soFromBeginning);
mStream.Read(buffer, SizeOf(buffer));
ShowMessage(buffer); {ddd}
{关于 Seek 函数:
参数1: Offset 是偏移量;
参数2: Origin 是指针的基准位置, 有三个选值: soFromBeginning、soFromCurrent、soFromEnd
soFromBeginning: 以开始为基准, 此时参数 Offset 要 >= 0;
soFromCurrent: 以当前位置为基准;
soFromEnd: 以结束为基准; 此时参数 Offset 要 <= 0;
返回: 指针新位置
}
end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
mStream.Free;
end;
end.
分享到:
相关推荐
delphi读取文件流delphi读取文件流 tfilestream利用字节数组复制文件
Delphi 内存流数组合并成单一内存流,使用方法:1.多个图片、控件、窗体、无类型数组等转换成一个个内存流,2.利用本单元合并成一个内存流,3.保存成一个文件,4.调用时:由文件生成单一内存流,5.利用本单元分解成...
delphi 鼠标拖放文件 读取文件 直接拖放读取文件 拖动读取文件
delphi 利用内存流合并文件 delphi 利用内存流合并文件
这是一个Delphi_用流来读取TXT文件的方法以及代码
DELPHI 读取&修改内存数据源代码,可读取或修改指定内存地址中的数据
delphi 文件读取范例 读取BIN文件(供参考)
//读取文件函数 function ReadFile1(FileName:String):boolean; var sFileName: string; f: TfileStream; ED_Data: array[0..2048] of char; lRet: integer; lOffset: Longint; lOrigin: Word; i,count:...
Delphi文件流、内存流原理实例及应用,了解一下如何使用文件流和内存流生成一些程序,好像一些外壳程序就是使用的内存流,挺底层的,不是太了解,不便多说。
关于 Delphi 中压缩流和解压流的应用关于 Delphi 中压缩流和解压流的应用关于 Delphi 中压缩流和解压流的应用关于 Delphi 中压缩流和解压流的应用关于 Delphi 中压缩流和解压流的应用关于 Delphi 中压缩流和解压流的...
delphi读取系统内存信息的单元,直接使用
Delphi使用SQLite3,包括本地数据库和内存数据库,本地数据库加载到内存,内存数据库备份到本地,使用sqlite simple delphi包装类。
TMemoryStream(内存流) 入门 TFileStream(文件流) 读写 TMemoryStream(内存流)读取文件 遍历读取流中的所有数据
关于Delphi7读取保存XML 读取XML,修改节点,保存XML的一个完整实例。
delphi如何读取远程远程的txt或者ini文件中的内容并执行!
Delphi 如何将二维数组数据 以Blob 存入数据库中 并读取 。先将二维数组转换维流文件,以内存流 Blob 形式存入到数据库中。 读取时以流获取 然后读出到数组中
Delphi7写的读取JPEG文件Exif信息的类(含中文注释及Exif v2.3官方文档,含显示TIF格式的GraphicEx库) 支持JPEG格式的缩略图读取,TIF格式的暂时未遇到,不知正确与否。 记录为摩托罗拉CPU格式的Exif信息暂时未遇到...
Delphi FTP 读取文件的数据,有利于做接口使用
转载:delphi7如何读取excel文件 用ole可以解决 用delphi提供 servers选项 第三方的表格控件可以直接读取excel的数据
delphi读写取流记录文件TFileStream img格式图片追加存储