- 浏览: 197361 次
- 性别:
- 来自: 济南
文章分类
最新评论
-
Kesin97:
不错 很有用。选择性锁也不太影响性能。
sqlserver的updlock锁 (转) -
fox-idea:
学习
用PC作数据库服务器的容灾问题 -
xwei78:
话说这个下载地址不太好找啊,我去oracle网站转了好一会才找 ...
oracle10g官方客户端配置
前言:
Delphi 支持三种文件类型: 文本文件、记录文件、无类型文件。
文本文件是以行为单位进行读、写的。由于每一行的长度不一定相同,不能计算出给定行在文件中的确切位置,因而只能顺序地读写。
文本文件只能单独为读或写而打开,在一个打开的文本文件上同时进行读、写操作是不允许的。
文本文件的打开需要两个步骤:1.文件变量与文件名关联;2.初始化读写。
1.文件变量与文件名关联:
AssignFile(VarTxt, FileName);
FileName 如果省略路径将默认当前目录。
2.初始化读写有三种方式:
(1) Reset: 只读打开, 指针移到文件头;
(2) Rewrite: 创建新文件并打开, 只写;
(3) Append: 从尾部追加, 指针当然在文件尾。
文件不存在时使用 Reset 或 Append 会引发一个I/O异常。
最后用 CloseFile 关闭文件。
为保持兼容,Delphi 也允许用户用 Assign 建立关联, 用 Close 关闭文件。
//读写示例: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Memo1: TMemo; Button1: TButton; Button2: TButton; Button3: TButton; Button4: TButton; Button5: TButton; Button6: TButton; Button7: TButton; procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure Button3Click(Sender: TObject); procedure Button4Click(Sender: TObject); procedure Button5Click(Sender: TObject); procedure Button6Click(Sender: TObject); procedure Button7Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} var F: Text; //TextFile 和 Text 是一样的 FileName: string = 'c:\temp\test.txt'; //写文件 procedure TForm1.Button1Click(Sender: TObject); begin AssignFile(F,FileName); Rewrite(F); //会覆盖已存在的文件 Writeln(F, '第一行'); Writeln(F, '第二行'); CloseFile(F); end; //读文件(先执行写文件) procedure TForm1.Button2Click(Sender: TObject); var s: string; begin AssignFile(F,FileName); Reset(F); //只读打开 Readln(F, s); //读取 ShowMessage(s); //显示: 第一行 Readln(F, s); //继续读取 ShowMessage(s); //显示: 第二行 CloseFile(F); end; //追加 procedure TForm1.Button3Click(Sender: TObject); begin AssignFile(F,FileName); Append(F); //打开准备追加 Writeln(F, '第三行'); Writeln(F, '第四行'); CloseFile(F); end; //读取全部(需要Memo帮忙显示) procedure TForm1.Button4Click(Sender: TObject); var s: string; begin AssignFile(F,FileName); Reset(F); //只读打开 Memo1.Clear; while not Eof(F) do begin Readln(F, s); Memo1.Lines.Add(s); end; CloseFile(F); end; //分列写入 procedure TForm1.Button5Click(Sender: TObject); //这个过程级函数的功能是: 用空格把 s 凑够 n 的长度 function AddSpace(s: string; n: Word): string; begin while Length(s) < n do begin s := s + ' '; end; Result := s; end; var name: string[8]; address: string[16]; begin AssignFile(F, FileName); Rewrite(F); name := '张三'; name := AddSpace(name,8); address := '山东泰安'; address := AddSpace(address,16); Writeln(F, name, address); name := '李四儿'; name := AddSpace(name,8); address := '贵州省安顺黄果树'; address := AddSpace(address,16); Writeln(F, name, address); name := '王二麻子'; name := AddSpace(name,8); address := '北京市海淀区'; address := AddSpace(address,16); Writeln(F, name, address); CloseFile(F); {写入的结果是: 张三 山东泰安 李四儿 贵州省安顺黄果树 王二麻子北京市海淀区 } end; //分列读取 procedure TForm1.Button6Click(Sender: TObject); var name: string[8]; address: string[16]; begin AssignFile(F, FileName); Reset(F); Memo1.Clear; while not Eof(F) do begin Readln(F, name); Memo1.Lines.Add(name); end; CloseFile(F); Reset(F); while not Eof(F) do begin Readln(F, name, address); Memo1.Lines.Add(address); end; CloseFile(F); {读取结果: 张三 李四儿 王二麻子 山东泰安 贵州省安顺黄果树 北京市海淀区 } end; //不同数据类型的写入和读取 procedure TForm1.Button7Click(Sender: TObject); var name: string[6]; age: Word; birthday: TDate; begin AssignFile(F,FileName); Rewrite(F); name := '菜花 '; //加两个空格凑够6个字符 age := 18; birthday := StrToDate(DateToStr(Now-18*365)); //假如她今天过生日 Writeln(F,name,age,birthday); CloseFile(F); Reset(F); Readln(F,name,age,birthday); Memo1.Clear; Memo1.Lines.Add(name); Memo1.Lines.Add(IntToStr(age)); Memo1.Lines.Add(DateToStr(birthday)); CloseFile(F); {读取结果: 菜花 18 1989-12-23 } //其实这样的东西应该用类型文件操作更合适, 但如果有这样的文本文件让你读取呢? end; end.
发表评论
-
关于 Delphi 中流的使用(4) 遍历读取流中的所有数据
2011-01-09 15:58 643unit Unit1;interfaceuses Windo ... -
关于 Delphi 中流的使用(3) 通过内存流读取文件
2011-01-09 15:57 901unit Unit1;interfaceuses Windo ... -
关于 Delphi 中流的使用(2) 用 TFileStream(文件流) 读写
2011-01-09 15:56 1136TStream 是一个抽象的基类, 不能直接生成对象. 在具体 ... -
Delphi 中流的使用(1) 用 TMemoryStream(内存流) 入门
2011-01-09 15:54 1115前言:所谓"流", 就是一段数据或是一块内 ... -
无类型文件读写
2011-01-09 15:48 725unit Unit1;interfaceuses Windo ... -
结构化文件存取
2011-01-09 15:47 630纲要:AssignFile: 关联Rewrite: 创建并打开 ... -
ini 文件操作
2011-01-09 15:42 807unit Unit1;interfaceuses Windo ... -
memo ctrl+a
2011-01-09 15:25 650在按键事件中处理全选Memo1.SelectAll;Memo1 ... -
单元文件结构
2011-01-09 15:13 565unit Unit1; interface {接口 ... -
Delphi初学者应小心的六大陷阱
2011-01-09 15:03 609初学DelphiI的人,由于各种原因,对DelphiI中的许多 ... -
格式化函数
2011-01-09 10:04 672var s: string;begin //指令类型 ty ... -
Delphi 的类型与指针
2011-01-03 22:53 1034先声明: 不要把我说的这些个东西当作教科书, 这都是自己的浅见 ... -
关于 Lo、Hi、LoWord、HiWord
2011-01-03 22:46 847Cardinal 是 4 字节无符号的整型, 先看一个例数: ... -
Delphi中票据凭证的精确打印
2010-04-01 17:25 773一、概述 在银行,税务,邮政等行业的实际工作中,经常涉及到在 ... -
beep 音乐
2009-09-23 12:55 1204windows.beep(523,500); ... -
delphi中第三方控件的安装方法 --转
2009-07-12 10:40 8061 只有一个DCU文件的组件。DCU文件是编译好的单元文件 ... -
delphi 需要注意的地方
2009-05-26 14:29 7331.类的概念 如:在窗体Form1中设置属 ...
相关推荐
掌握文本文件读写的方法
python 文件读写目录浏览功能类,包括目录浏览,文本文件读写,文本文件计数,编码读写等文本文件功能。还包括的编码的转换.zip
python 文件读写目录浏览功能类,包括目录浏览,文本文件读写,文本文件计数,编码读写等文本文件功能。还包括的编码的转换
小程序-C#将文本文件读写并对部分内容匹配和替换 京华志&精华志出品 希望大家互相学习,互相进步 支持CSDN 支持微软
基于Python PyQt5实现的文件操作Demo,含文本文件读写、二进制文件流化读写、原始字节数据读写、目录与文件操作
Qt提供了两种读写纯文本文件的基本方法,一种是用QFile类的IODevice读写功能直接进行读写,另一种是利用QFile和QTextStream结合起来,用流(Stream)的方法进行文件读写。 实例samp7_1演示了这两种方法读写文本文件...
A.6.2 文本文件读写(WPF).zip
Delphi直接读写文本文件的方法,不通过Memo控件,直接将字符串写入文件,或者从文件中读出来。很使用
PYTHON学习教程 选择判断循环随机random文本文件读写函数 公交车载客案例
JSP实验报告+登录系统的制作 简单的页面 文本文件读写 附带源码
在Linux下的文本读写操作的源代码,最原始的程序,修改、添加就会变成你自己的特色。
Java 读写文件文本文件的示例
能进行文本文件的读写操作,所有单词均放入文本文件中,进行检索和计数操作。单词的检索(返回为该单词在文本文件中的位置,可能多个,需返回多个位置)和计数(计数包括单词检索时的个数和全部单词的个数计数)。
通过这个类可以想文件中写,也可以读了!
通过c语言标准库下的接口,实现对文本文件简单的读写操作。
C++文件读写流样板
(3)将2012-2020年的月历全部输出到文本文件中(文本文件的名字通过键盘输入确定)。 输出月历格式为: ******2012年1月****** 日 一 二 三 四 五 六 1 2 3 4 5 6 7 8 9 10 11…… ******2012年2月******
Android平台中经常要用到Txt文本文件的读写操作,该文档提供了一个处理方式。
使用MFC,打开文本文件显示在CListCtrl控件上,可以对显示内容进行编辑,增加行,删除行,并且可以对修改的内容进行保存。