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 ...
随机推荐
- 爬虫2:urllib
了解即可,不好用 一. 概述 python内置的http请求库,包括4个模块,分别如下 urllib.request 请求模块 urllib.error 异常处理模 ...
- 为阿里云域名配置免费SSL支持https加密访问简单教程
阿里云之前有免费ssl入口申请,现在已经关闭了.那么现在怎么为自己的域名配置https呢? 首先打开阿里云域名控制台,如以下界面.(这里暂且用我的这个域名讲解吧) 如上图点击ssl证书,点击单域名免 ...
- 半年的iOS代码生活
半年的iOS代码生活 在高考大军中拼杀过,也在大学校园中荒芜过,曾经低迷消沉,也常满怀壮志…… 但是最多的还是被称为小伙子以及自称为iOS工程师!博主就是这种喜闻乐见的这类人,实习一年后在2015年的 ...
- [转载+整理]Nginx Location匹配规则
目录 规则语法 location 分类 匹配顺序: 扩展 location / {}和 location =/ {}的区别 测试 规则语法 语法 匹配规则 空 普通匹配(遵循最大前缀匹配规则, 优先度 ...
- appium Capabilities的各个标签
今天详解一下Capabilities的各个标签,以后如果用得着可以随时翻阅. General Capabilities 标签 概述 值 automationName 使用引擎 默认为Appium,其中 ...
- java的MethodHandle类详解
一.总述 java7为间接调用方法提供了MethodHandle类,即方法句柄.可以将其看作是反射的另一种方式. 这是使用MethodHandle调用方法的一个例子: public class T ...
- SQL语句01
SQL(Structured Query Language):结构化查询语言 SQL分类: 数据操纵语言DML(Data Manipulation Language) SELECT ...
- 洛谷 P4774 / loj 2721 [NOI2018] 屠龙勇士 题解【同余】【exgcd】【CRT】
推导过程存在漏洞+exCRT板子没打熟于是期望得分÷实际得分=∞? 题目描述 小 D 最近在网上发现了一款小游戏.游戏的规则如下: 游戏的目标是按照编号 \(1\sim n\) 顺序杀掉 \(n\ ...
- Docker 入门相关
什么是Docker和容器 可能是把Docker的概念讲的最清楚的一篇文章 为什么要用Docker 相关网址 Window平台Docker下载 一些基本知识 Volume docker volume l ...
- DGIS之遥感影像数据获取
1.概要 在GIS圈的同行或多或少接触过遥感,记得在大学老师就说过"数据是GIS的核心".本文介绍在国内下载遥感影像的方法. 地理空间数据云,这个是中科院计算机网络中心建设的一个免 ...