关于 Delphi 中流的使用 用流读写结构化文件

Posted 每天进步一点点……

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于 Delphi 中流的使用 用流读写结构化文件相关的知识,希望对你有一定的参考价值。

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Memo1: TMemo;     添加 Memo 显示内容
    Button1: TButton;
    Button2: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
     Private declarations 
  public
     Public declarations 
  end;

var
  Form1: TForm1;

implementation

$R *.dfm

type
  TRec = record     定义一个记录
    name: string[8];
    age: Word;
  end;


//写入
procedure TForm1.Button1Click(Sender: TObject);
var
  rec: TRec;
  ms: TMemoryStream;
begin
  ms := TMemoryStream.Create;

  rec.name := \'张三\'; rec.age := 8;
  ms.Write(rec, SizeOf(rec));

  rec.name := \'李四\'; rec.age := 81;
  ms.Write(rec, SizeOf(rec));

  rec.name := \'王二麻子\'; rec.age := 18;
  ms.Write(rec, SizeOf(rec));

  ms.SaveToFile(\'c:\\temp\\rec.dat\');

  ms.Free;
end;


//读取
procedure TForm1.Button2Click(Sender: TObject);
var
  rec: TRec;
  ms: TMemoryStream;
begin
  ms := TMemoryStream.Create;
  ms.LoadFromFile(\'c:\\temp\\rec.dat\');

  Memo1.Clear;
  ms.Position := 0;
  while ms.Position < ms.Size do
  begin
    ms.Read(rec, SizeOf(rec));
    Memo1.Lines.Add(rec.name + \' \' + IntToStr(rec.age));
  end;
  Memo1 的显示结果会是:
    张三 8
    李四 81
    王二麻子 18
  

  ms.Free;
end;

end.

Delphi INI 文件读写

delphi中,配置文件的相关操作。

 

1) INI文件的结构: 
  ;这是关于INI文件的注释部分 
  [节点] 
  关键字=值 
  ... 
  INI文件允许有多个节点,每个节点又允许有多个关键字, “=”后面是该关键字的值(类型有三种:字符串、整型数值和布尔值。其中字符串存贮在INI文件中时没有引号,布尔真值用1表示,布尔假值用0表示)。注释以分号“;”开头。
  
(2) INI文件的操作 
 1、 在Interface的Uses节增加IniFiles; 
 2、 在Var变量定义部分增加一行:inifile:Tinifile;然后,就可以对变量myinifile进行创建、打开、读取、写入等操作了。 
 3、 打开INI文件:inifile:=Tinifile.create(tmp.ini); 
 4、 读取关键字的值: 
 a:=inifile.Readstring(节点,关键字,缺省值);// string类型 
 b:=inifile.Readinteger(节点,关键字,缺省值);// integer类型 
 c:=inifile.Readbool(节点,关键字,缺省值);// boolean类型 
 其中[缺省值]为该INI文件不存在该关键字时返回的缺省值。 
 5、 写入INI文件: 
 inifile.writestring(节点,关键字,变量或字符串值); 
 inifile.writeinteger(节点,关键字,变量或整型值); 
 inifile.writebool(节点,关键字,变量或True或False); 
 当这个INI文件的节点不存在时,上面的语句还会自动创建该INI文件。 
 6、 删除关键字: 
 inifile.DeleteKey(节点,关键字);//关键字删除 
 inifile.EraseSection(节点);// 节点删除 
 7、 节点操作: 
 inifile.readsection(节点,TStrings变量);//可将指定小节中的所有关键字名读取至一个字符串列表变量中; 
 inifile.readsections(TStrings变量);//可将INI文件中所有小节名读取至一个字符串列表变量中去。 
 inifile.readsectionvalues(节点,TStrings变量);//可将INI文件中指定小节的所有行(包括关键字、=、值)读取至一个字符串列表变量中去。 
 8、 释放:inifile.distory;或inifile.free;

 

 

 

来源于网络。

 

以上是关于关于 Delphi 中流的使用 用流读写结构化文件的主要内容,如果未能解决你的问题,请参考以下文章

关于 Delphi 中流的使用 遍历读取流中的所有数据

关于 Delphi 中流的使用 用 TMemoryStream(内存流) 入门

Delphi INI 文件读写

delphi 结构体和内存流

浅谈Java中流的概念与用途

如何使用 Delphi 的读写密码创建 .xls 文件