delphi文件操作
如何在delphi中操作文件的读与写?
我刚开始接触delphi,如何在delphi中操作文件的读与写,哪位朋友指教一下非常感谢!最好来段源码.
var f:text;
...
AssignFile(f,'c:/1.txt');
ReWrite(f);
Writeln(f,'This is a test');
CloseFile(f);
...
其中Rewrite是新建文件,若换成Reset则为打开文件
Writeln为行写入并换行,Write为写入不换行,Readln为读一行并换行,Read为读但不换行
delphi 读写文件方法有很多种:
我送你一贴:
程序设计当中我们时常遇到需要处理文件、目录及驱动器的情况,本章将对如何处理不同类型的
文件进行讲述。本章包括如何使用T F i l e S t r e a m 类封装文件的输入/输出以及如何利用3 2 位Wi n d o w s 的主要特征—内存映射文件。你将学习到如何创建一个封装了内存映射文件功能的T M e m o r y M a p p e d F i l e类,并用它在文本文件中进行文本查询。本章还提供了一些关于选择驱动器、在树型目录中查询文件及获取文件版本信息的方法。本章将使你对文件、目录及驱动器有深入的认识。
处理文件的输入/输出
你将要对三种文件进行处理:文本文件、类型文件和二进制文件。以下几节是关于文件输入/输出
的讲解。文本文件指可被任意文本编辑器读取的A S C I I 文本。类型文件指包含由程序员定义的数据类型的文件。二进制文件包含了其他所有的类型,它是对包含任意格式或无格式数据的文件的统称。
文本文件的处理
本节讲述使用内建于Object Pascal 运行时库中的过程和函数处理文本文件的方法。在对文本文件进行任何处理之前,首先要打开此文本文件。声明变量:通过此变量可以来引用一个文本文件。
打开一个文件需要两步:首先是A s s i g n F i l e ( ) ,它可以将文件变量与一个文件关联起来。例如:这时,你可以进行第二步:打开文件。有三种方式打开文件:使用R e w r i t e ( )过程创建并打开文件;对于一个已存在的文件,此操作将使文件被覆盖;使用R e s e t ( )过程只读地打开一个文件;使用Append() 过程向已存在的文件追加文本。
注意Reset()将以可读写方式打开类型文件和无类型文件。可以使用C l o s e F i l e ( )来关闭一个已打开的文件。下例是各种调用的函数。
文件的打开与关闭
AssignFile :把一个外部文件名和一个文件变量相关联
Reset :打开一个存在的文件
Rewrite :创建并打开一个新文件(或覆盖原有文件)
Append :以添加方式打开一个文件(只适用于文本文件)
CloseFile :关闭一个打开的文件
FileOpen :打开一个特定的文件并返回文件句柄
FileCreate :创建一个给定文件名的文件并返回文件句柄
FileClose :关闭一个特定句柄的文件
后边三个文件主要供系统内部使用,在文件复制的编程中也往往会用到。它们操作的对象是文件句柄而不是文件变量。
文件定位
Seek:把文件当前位置移到指定部分
FilePos:返回文件的当前位置
Eoln:返回行结束标志
EOF:返回文件结束标志
FileSeek: 改变当前文件指针的位置
还有个问题,如何判断文件已打开?要不要读写完之后就关闭文件,下次读或者写时再打开?
正常情况下是这样
用TFileStream
对于通过Byte数组进行文件操作的,在FTP中经常会使用到,我也是在Delphi调用Web Service进行文件的上传和下载时找到这两个函数的,挺好用的,推荐给大家。(申明:非本人所写)
1. 将Byte数组生成文件
procedure ByteArrayToFile(const ByteArray : TByteDynArray; const FileName : string );
var
Count: integer;
F: FIle of Byte;
pTemp: Pointer;
begin
AssignFile( F, FileName );
Rewrite(F);
try
Count := Length( ByteArray );
pTemp := @ByteArray[0];
BlockWrite(F, pTemp^, Count );
finally
CloseFile( F );
end;
end;
2. 将文件生成Byte数组
function FiIeToByteArray(const FileName:string ):TByteDynArray;
const
BLOCK_SIZE=1024;
var
BytesRead,BytesToWrite,Count:integer;
F:File of Byte;
pTemp:Pointer;
begin
AssignFile( F, FileName );
Reset(F);
try
Count := FileSize( F );
SetLength(Result, Count );
pTemp := @Result[0];
BytesRead := BLOCK_SIZE;
while (BytesRead = BLOCK_SIZE ) do
begin
BytesToWrite := Min(Count, BLOCK_SIZE);
BlockRead(F, pTemp^, BytesToWrite , BytesRead );
pTemp := Pointer(LongInt(pTemp) + BLOCK_SIZE);
Count := Count-BytesRead;
end;
finally
CloseFile( F );
end;
end;
function Encrypt(mStr: string; mKey: string): string;
var
I, J: Integer;
begin
J := 1;
Result := '';
for I := 1 to Length(mStr) do begin
Result := Result + Char(Ord(mStr[I]) xor Ord(mKey[J]));
if J + 1 <= Length(mKey) then
Inc(J)
else J := 1;
end;
{自己加步骤}
end;
function Decrypt(mStr: string; mKey: string): string;
var
I, J: Integer;
begin
J := 1;
Result := '';
{自己加步骤}
for I := 1 to Length(mStr) do begin
Result := Result + Char(Ord(mStr[I]) xor Ord(mKey[J]));
if J + 1 <= Length(mKey) then
Inc(J)
else J := 1;
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
const
cKey1 = '谁想试试怎么破';
cKey2 = '我可不愿意这样玩(1)我可不愿意这样玩(2)我可不愿意这样玩(3)';
cKey3 = 'Memo2.Text := Decrypt(Encrypt(Memo1.Text, cKey), cKey);';
var
S: string; //加密后的字符
begin
S := Encrypt(Encrypt(Encrypt(Memo1.Text, cKey1), cKey2), cKey3);
ShowMessage(S);
Memo2.Text := Decrypt(Decrypt(Decrypt(S, cKey3), cKey2), cKey1);
end;
delphi文件操作相关推荐
- DELPHI 文件操作 万一博客
文件管理类函数(1) //判断文件是否存在 FileExists var f: string; begin f := 'c:/temp/test.txt'; if not FileExists(f) ...
- Delphi文件操作函数
1.IncludeTrailingPathDelimiter和ExcludeTrailingPathDelimiter IncludeTrailingPathDelimiter(const S:Str ...
- Delphi 文件操作 AssignFile()
RAD Studio 10.2.3 测试√ procedure TForm_Tips.Button_AssignFileClick(Sender: TObject); varFileName: str ...
- Delphi 文件操作(路径、目录)
Delphi利用系统环境变量获取常用系统目录 //譬如 %WINDIR% 是表示系统目录的系统变量, 可以这样获取: var s: string; begin s := GetEnvironmentV ...
- Delphi的文件操作
参考自:http://www.cnblogs.com/railgunman/articles/1800318.html Delphi 中默认有input 和 output 两个文件变量,使用可以不用定 ...
- 【Delphi入门】文件系统(文件分类 文件文本变量 文件操作 文件流操作)
文件分类 文本文件(TextFile) & 二进制文件(Flie) 二进制形式存放数据占有存储空间较少,但不直观:文本文件与之相反 文件是由相同类型的数据元素组成的序列.在DELPHI中对文件 ...
- python文件处理seek_python文件操作 seek(),tell()
seek():移动文件读取指针到指定位置 tell():返回文件读取指针的位置 seek()的三种模式: (1)f.seek(p,0) 移动当文件第p个字节处,绝对位置 (2)f.seek(p,1) ...
- DELPHI中操作ACCESS数据库
DELPHI中操作ACCESS数据库(建立.mdb文件,压缩数据库) 以下代码在WIN2K,D6,MDAC2.6下测试通过, 编译好的程序在WIN98第二版无ACCESS环境下运行成功. //在之前u ...
- Delphi 如何操作Excel
Delphi 如何操作Excel 摘自:http://wenjieshiyu.blog.163.com/blog/static/10739413201072033115869/ 个人收藏: Delph ...
最新文章
- Go复盘--再识Go语言
- Bzoj 1391: [Ceoi2008]order 网络流,最大权闭合图
- 作为怀孕的亲历者,你觉得最值得分享的经验或者技巧是什么?
- 8Linux服务器编程之:chdir()函数和cd命令,getcwd()函数和pwd
- P7115-[NOIP2020]移球游戏【构造】
- ear的英语怎么念_ear英语怎么读
- Git + GitHub 超详细知识笔记整理
- 基于Spring Security的认证授权_方法授权_Spring Security OAuth2.0认证授权---springcloud工作笔记133
- SQL Server 的本地时间和UTC时间
- AjaxControltoolkit学习笔记—PopupControl 使用详解
- mysql数据库封装类_基于mysqli封装的数据库类
- 从看《长津湖》想到的数字化转型
- PLC+智能网关,实现HTTP+JSON/XML+POST/GET请求与解析
- linux文件权限说明(drwxr-xr-x)
- 【集合论】序关系 ( 偏序关系中八种特殊元素 | ① 最大元 | ② 最小元 | ③ 极大元 | ④ 极小元 | ⑤ 上界 | ⑥ 下界 | ⑦ 最小上界 上确界 | ⑧ 最小下界 下确界 )
- NotePad++ 删除重复行
- 结构体知识——声明,初始化,成员访问,传参
- 西南科技大学计算机综合大纲,西南科技大学(专业学位)计算机技术研究生考试科目和考研参考书目...
- oracle dbms是什么意思,我们常使用的Oracle等DBMS等都是什么数据模型?
- 00 59秒计时器仿真c语言源程序,单片机0059_秒计时器.doc
热门文章
- [开关电源]浪涌电流有点高?我来给你支支招
- 论文阅读笔记(4)——《Language Generation with Multi-Hop Reasoning on Commonsense Knowledge Graph》
- “胜兵先胜而后求战,败兵先战而后求胜”—系统分析师考试经验谈
- 倍福--通知方式实现ADS通信
- 互联网公司技术总监工作内容
- html留言板原理,js实现留言板
- 时间序列预测之移动平均法(MA)
- mac无法调节屏幕亮度
- python生成二维码,实现零件履历表(微信小程序+python后端+mysql)
- excel数字排序1后面是2而不是10