delphi之读写文件的三种方式
一、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之读写文件的三种方式的更多相关文章
- 前端js,css文件合并三种方式,bat命令
前端js,css文件合并三种方式,bat命令 前端js文件该如何合并三个方式如下:1. 一个大文件,所有js合并成一个大文件,所有页面都引用它.2. 各个页面大文件,各自页面合并生成自己所需js的大文 ...
- android中解析文件的三种方式
android中解析文件的三种方式 好久没有动手写点东西了,最近在研究android的相关技术,现在就android中解析文件的三种方式做以下总结.其主要有:SAX(Simple API fo ...
- 转 Velocity中加载vm文件的三种方式
Velocity中加载vm文件的三种方式 velocitypropertiespath Velocity中加载vm文件的三种方式: 方式一:加载classpath目录下的vm文件 Prope ...
- Velocity中加载vm文件的三种方式
Velocity中加载vm文件的三种方式: a. 加载classpath目录下的vm文件 /** * 初始化Velocity引擎 * --VelocityEngine是单例模式,线程安全 * @th ...
- 解析Xml文件的三种方式及其特点
解析Xml文件的三种方式 1.Sax解析(simple api for xml) 使用流式处理的方式,它并不记录所读内容的相关信息.它是一种以事件为驱动的XML API,解析速度快,占用内存少.使用 ...
- Java读写文件的几种方式
自工作以后好久没有整理Java的基础知识了.趁有时间,整理一下Java文件操作的几种方式.无论哪种编程语言,文件读写操作时避免不了的一件事情,Java也不例外.Java读写文件一般是通过字节.字符和行 ...
- Python读写文件的几种方式
一.pandas pandas模块是数据分析的大杀器,它使得对于文件相关的操作变得简单. 看一下它的简单使用 import pandas as pd # 读取 df = pd.read_csv('al ...
- 【spring Boot】spring boot获取资源文件的三种方式【两种情况下】
首先声明一点,springboot获取资源文件,需要看是 1>从spring boot默认的application.properties资源文件中获取 2>还是从自定义的资源文件中获取 带 ...
- Ajax上传数据和上传文件(三种方式)
Ajax向后端发送数据可以有三种方式:原生Ajax方式,jQuery Ajax方式,iframe+form 方式(伪造Ajax方式) <!DOCTYPE html> <html la ...
随机推荐
- webshell在php方向的研究(精华篇)
文章主旨:准备学习c语言,你喜欢的所有干货在文末附件里 作者宗旨:没有不想当将军的兵,没有不想提高技术的person,今天带你打开php的研究之路. 本文作者:Laimooc(原名xoanHn),个人 ...
- lucene索引的更新和删除
索引的删除: IndexReader和IndexWriter都由删除索引的功能,但这两者是有区别的, 使用IndexReader删除索引时,索引会马上被删除,其有两种方法,可以删除索引deleteDo ...
- linux centos 7 下安装ElasticSearch5.4
一. 把elasticsearch-5.4.0.rpm和kibana-5.4.0-x86_64.rpm上传到centos下/root目录中,如下图:二.进入centos目录/root,并用命令rpm ...
- Linux 历史信息history显示执行时间
fc命令 fc命令自动掉用vi编辑器修改已有历史命令,当保存时立即执行修改后的命令,也可以用来显示历史命令.fc命令编辑历史命令时,会自动调用vi编辑器.fc保存文件后,会自动执行所编辑过的命令. 测 ...
- leetcode-73-矩阵置零
题目描述: 给定一个 m x n 的矩阵,如果一个元素为 0,则将其所在行和列的所有元素都设为 0.请使用原地算法. 示例 1: 输入: [ [1,1,1], [1,0,1], [1, ...
- net 反编译神器
文章地址:https://www.cnblogs.com/sheng-jie/p/10168411.html dnSpy官网下载 分享链接 .net core源码导航 https://www.cnb ...
- [HNOI2019]鱼
Luogu5286 \(2019.4.14\),新生第一题,改了\(3\)个小时 题解-租酥雨,和出题人给的正解一模一样 枚举\(AD\),分别考虑鱼身\(BC\)和鱼尾\(EF\) 到\(E\),\ ...
- CF1083(Round #526 Div. 1) 简要题解
题目链接 https://codeforces.com/contest/1083 简要题目翻译 题解 A. The Fair Nut and the Best Path 可以忽略掉"任意时刻 ...
- phpspreadsheet开发手记
坑安装简单示例通过模板来生成文件释放内存单元格根据索引获取英文列设置值合并单元格居中显示宽度设置批量设置单元格格式直接输出下载自动计算列宽函数formula单元格变可点击的超链 PhpSpreadsh ...
- web前端优化之reflow(减少页面的回流)
1.什么是reflow? reflow(回流)是指浏览器为了重新渲染部分或者全部的文档,重新计算文档中的元素的位置和几何构造的过程. 因为回流可能导致整个Dom树的重新构造,所以是性能的一大杀手. 以 ...