首页 > 其他分享 >关于 Delphi 中流的使用 用流读写结构化文件

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

时间:2023-05-13 09:02:04浏览次数:49  
标签:end name Delphi TForm1 age ms rec 用流 读写

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.

标签:end,name,Delphi,TForm1,age,ms,rec,用流,读写
From: https://www.cnblogs.com/lucken2000/p/17396721.html

相关文章

  • 关于 Delphi 中流的使用 用 TMemoryStream(内存流) 入门
    所谓"流",就是一段数据或是一块内存;在进行流操作时,我们不必关心流中的数据到底是什么;只需要知道流的大小和当前的指针位置.所以流只有两个属性:Size、Position.对流的操作,不过就是读取和写入.所以流最主要的方法就是Read和Write.在很多控件的使用中,读取主要用Load......
  • 关于 Delphi 中流的使用 遍历读取流中的所有数据
    unitUnit1;interfaceuses Windows,Messages,SysUtils,Variants,Classes,Graphics,Controls,Forms, Dialogs,StdCtrls;type TForm1=class(TForm)  Memo1:TMemo;  Memo2:TMemo;{需要添加两个Memo用于显示}  Button1:TButton;  ......
  • PLC做配方三轴螺丝机程序 配合流水线使用的三轴吸钉式自动锁螺丝机 (就是用流水线到位
    PLC做配方三轴螺丝机程序配合流水线使用的三轴吸钉式自动锁螺丝机(就是用流水线到位信号启动,螺丝机打完再输出信号:)显控触摸屏加三菱FX3GA已经在设备上使用。用PLC做的配方,打螺丝颗数1-10颗最大存储70个产品数据颗数和数据数程序可以改ID:1418656656907646......
  • SPI方式读写SD卡速度有多快?
    SD卡是一个嵌入式中非常常用的外设,可以用于存储一些大容量的数据。但是,用单片机读写SD卡速度一般都有限(对于高速SD卡,主要是受限于单片机本身的接口速度),在高速、实时数据存储时可能会有影响。那么,具体速度可以达到多少呢?让我们来实际测试一下。SD卡一般有两种常用的接口SPI和SDIO,S......
  • 工程监测NLM5无线中继采集发送仪使用$SETPTool 工具读写参数
    工程监测NLM5无线中继采集发送仪使用$SETPTool工具读写参数 $SETPTool是通用的设备测试、参数读写工具,适用于稳控科技绝大部分设备机器。如果要编写自己的测试工具,可参考“2.通讯协议”章节说明。$SETPToolForNLM5xx的主界面如下图所示。 按照主界面左下角操作提示......
  • delphi StyleControl中DB控件的使用说明
    这两天听大佬说"可视化绑定"的效率很低,再加对下拉菜单,单选,复选框等控件绑定操作的未知,于是我决定把普通组件,改为DB组件. 正常来讲,基本上所有DB组件只要设置好了数据源和字段绑定,就能显示数据来, 但是我这边就出现了一点意外,源于对sqlite数据库认知度不够的原因......
  • 2020-05-21:es底层读写原理?倒排索引原理?
    es不熟悉,答案仅供参考:es写数据过程1、客户端选择一个node发送请求过去,这个node就是coordinatingnode(协调节点)2、coordinatingnode对document进行路由,将请求转发给对应的node(有primaryshard)3、实际的node上的primaryshard处理请求,然后将数据同步到replicanode。4、coord......
  • Delphi 字符串拆分/分割[1] - TStringList
    1、TStringList默认以','拆分字符onstconstr:String='aaa,bbb,ccc,ddd';varstrs:TStrings;i:Integer;beginstrs:=TStringList.Create;strs.CommaText:=constr;fori:=0toStrs.Count-1doShowMessage(Strs[i]);//aaabbbcccd......
  • HDFS文件读写初窥- Java API
    安装HDFS1)hadoop下载:https://hadoop.apache.org/releases.html2)本地安装:https://hadoop.apache.org/docs/r3.3.5/hadoop-project-dist/hadoop-common/SingleCluster.html3)修改配置:etc目录下存放了hadoop相关配置文件,这里要在本地部署伪分布式模式,需要修改以下两个文件:e......
  • delphi模板引擎
    programExample;usesSempare.Template;typeTInformation=recordname:string;favourite_sport:string;count:integer;end;beginvartpl:=Template.Parse('Mynameis<%name%>.'#13#10+'Myfavouritesportis<%......