一、Tstrings、Tstringlist

procedure TForm1.Button2Click(Sender: TObject);
var strlist: TStringList;
path: string;
begin
path := 'c:\test.txt';
strlist := TStringList.Create;
try
strlist.Add('str=abcd');
strlist.Insert(, 'int=123'); // key=value 类似键值对模式
strlist.SaveToFile(path);
finally
strlist.Free; //释放
end;
end; procedure TForm1.Button4Click(Sender: TObject);
var strlist: TStringList;
path: string;
begin
path := 'c:\test.txt';
strlist := TStringList.Create;
try
strlist.LoadFromFile(path);
mmo1.Lines.Add(strlist.Values['str']); //输出:abcd
mmo1.lines.Add(strlist.ValueFromIndex[]);// 输出:123
//strlist还有很多好用的功能,可以去查一下
finally
strlist.Free; //释放
end;
end; 

二、直接读取

三、流  (注:不能使用string存储数据,string是指针存的是地址,写入文件的数据是无效的)

  • TMemoryStream

  •  procedure TForm1.Button2Click(Sender: TObject);
    var m: TMemoryStream;
    tr:tr_record;
    path:string;
    begin
    path:='c:\test.txt';
    m := TMemoryStream.Create;
    try
    tr.str:='abcd';
    tr.int:=;
    m.Write(tr,SizeOf(tr));// 将tr数据写入流
    m.SaveToFile(path);//流存入文本
    m.Clear; //清除流的数据
    FillChar(tr,SizeOf(tr),);//初始化结构体数据 m.LoadFromFile(path);//从文本中读取数据,用内存流装
    m.Position:=; //将指针位置置为0(如果装载了多条数据,可以通过改变位置读取后面的,默认为0)
    m.Read(tr,SizeOf(tr));//把数据装到结构体里
    mmo1.Lines.Add(tr.str);//显示结果为:abcd
    //第二种方式
    Move(m.memory^,tr,SizeOf(tr));//跟positon没关系,结果相同
    finally
    m.Free;//释放内存流
    end;
    end;
  • TFileStream

  •  procedure TForm1.Button2Click(Sender: TObject);
    var m: TFileStream;
    tr: tr_record;
    path: string;
    begin
    path := 'c:\test.txt';
    m := TFileStream.Create(path, fmCreate);
    try
    tr.str := 'abcd';
    tr.int := ; m.Write(tr, SizeOf(tr)); // 将tr数据写入流 finally
    m.Free; //释放内存流
    end;
    end; procedure TForm1.Button4Click(Sender: TObject);
    var m: TFileStream;
    tr: tr_record;
    path: string;
    begin
    path := 'c:\test.txt';
    m := TFileStream.Create(path, fmOpenRead);
    try
    m.Read(tr,SizeOf(tr));
    mmo1.Lines.Add(tr.str); //结果为:abcd
    finally
    m.Free; //释放内存流
    end;
    end;

delphi之读写文件的三种方式的更多相关文章

  1. 前端js,css文件合并三种方式,bat命令

    前端js,css文件合并三种方式,bat命令 前端js文件该如何合并三个方式如下:1. 一个大文件,所有js合并成一个大文件,所有页面都引用它.2. 各个页面大文件,各自页面合并生成自己所需js的大文 ...

  2. android中解析文件的三种方式

    android中解析文件的三种方式     好久没有动手写点东西了,最近在研究android的相关技术,现在就android中解析文件的三种方式做以下总结.其主要有:SAX(Simple API fo ...

  3. 转 Velocity中加载vm文件的三种方式

    Velocity中加载vm文件的三种方式   velocitypropertiespath Velocity中加载vm文件的三种方式:    方式一:加载classpath目录下的vm文件 Prope ...

  4. Velocity中加载vm文件的三种方式

    Velocity中加载vm文件的三种方式: a.  加载classpath目录下的vm文件 /** * 初始化Velocity引擎 * --VelocityEngine是单例模式,线程安全 * @th ...

  5. 解析Xml文件的三种方式及其特点

    解析Xml文件的三种方式 1.Sax解析(simple api  for xml) 使用流式处理的方式,它并不记录所读内容的相关信息.它是一种以事件为驱动的XML API,解析速度快,占用内存少.使用 ...

  6. Java读写文件的几种方式

    自工作以后好久没有整理Java的基础知识了.趁有时间,整理一下Java文件操作的几种方式.无论哪种编程语言,文件读写操作时避免不了的一件事情,Java也不例外.Java读写文件一般是通过字节.字符和行 ...

  7. Python读写文件的几种方式

    一.pandas pandas模块是数据分析的大杀器,它使得对于文件相关的操作变得简单. 看一下它的简单使用 import pandas as pd # 读取 df = pd.read_csv('al ...

  8. 【spring Boot】spring boot获取资源文件的三种方式【两种情况下】

    首先声明一点,springboot获取资源文件,需要看是 1>从spring boot默认的application.properties资源文件中获取 2>还是从自定义的资源文件中获取 带 ...

  9. Ajax上传数据和上传文件(三种方式)

    Ajax向后端发送数据可以有三种方式:原生Ajax方式,jQuery Ajax方式,iframe+form 方式(伪造Ajax方式) <!DOCTYPE html> <html la ...

随机推荐

  1. html中object和embed标签的区别

    ♦object定义一个嵌入的对象.请使用此元素向您的 XHTML 页面添加多媒体.此元素允许您规定插入 HTML 文档中的对象的数据和参数,以及可用来显示和操作数据的代码. ♦<object&g ...

  2. Linux下配置环境变量的几个方法实例

    场景:一般来说,配置交叉编译工具链的时候需要指定编译工具的路径,此时就需要设置环境变量.例如我的mips-linux-gcc编译器在“/opt/au1200_rm/build_tools/bin”目录 ...

  3. Error:(1, 1) 错误: 需要class, interface或enum

    这个东西在Ideal里面报的错误,在控制台提示: Error:(1, 1) 错误: 需要class, interface或enum 网上搜到说是编码问题,我的解决方式: 把出错的文件选中复制一份,再随 ...

  4. 启动express,端口被占用

    启动express项目报错: root@ubuntuServerVM:/home/nodejs/meadowlark/site# node meadowlark.jsevents.js:160 thr ...

  5. clang命令理解程序

    Xcode 创建一个mac OS   command Line Tool程序 步骤打开终端  cd + 工程路径(绝对路径)(注:拖拽main.m文件到终端) input —preprocessor— ...

  6. 【C#】自定义新建一个DataTable(3列),循环3维矩形数组往其填充数据

    从中可以了解DataTable的新增行和列;矩形多维数组循环机制;新建了DataTable DataTable dt = new DataTable(); DataColumn dc1 = new D ...

  7. CentOS7 安装 Visual Code

    官网下载 rpm 安装文件 运行 rpm -ivh 试一下 sudo rpm -ivh xxx.rpm 有可能弹出提出:libxx.so() need by xxxrpm ,反正意思是缺组件,去下载安 ...

  8. P1525 关押罪犯 题解

    #include<iostream> #include<cstdio> #include<algorithm> using namespace std; //带边权 ...

  9. 【性能测试】:对WebSphere中间件的监控方式

    1  登录WebSphere控制台 2 选择应用.点击启动和停止来启动和停止应用 3 查看当前活动.点击要查看的项目 4 在开始监测前,先选中服务,点击启动监控将集合状态改为活动的 进入页面后,在页面 ...

  10. server端获得到client端的IP地址的格式

    使用telnet,ping或其他client连接server端时,server端获得的client端的ip地址取决于client端使用的时ipv4还是ipv6地址. 例: client IPv4地址: ...