Delphi文件 FileOpen、FileSeek等的用法

AI权益加码!Claude Code、Cursor等20+工具免费用! 购周边限时加赠Coding Plan Lite,畅享主流AI工具!学习进阶更高效! 阅读详情
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Grids;

type
TForm1 = class(TForm)
Button1: TButton;
Memo1: TMemo;
Label1: TLabel;
Edit1: TEdit;
Edit2: TEdit;
Label2: TLabel;
Button2: TButton;
Button3: TButton;
StringGrid1: TStringGrid;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
end;
//定义记录类型
TRecEmp = record
//需要初始化
EmpNo: String[20];
EmpName: String[30];
end;

var
Form1: TForm1;
RecEmp: TRecEmp;
//定义一个记录类型的文件变量
FileText: file of TRecEmp;
implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
last: LongInt;
begin
RecEmp.EmpNo := trim(Edit1.Text);
RecEmp.EmpName := trim(Edit2.Text);
try
//和某个文件建立链接
AssignFile(FileText,'d:\sql.txt');
//打开一个已经存在的文件
Reset(FileText);
last := FileSize(FileText);
//将指针移向指定记录
Seek(FileText, last);
//写文件
Write(FileText, RecEmp);
Edit1.Text := '';
Edit2.Text := '';
CloseFile(FileText);
except
ReWrite(FileText);
end;

end;

procedure TForm1.Button2Click(Sender: TObject);
begin
try
AssignFile(FileText,'d:\sql.txt');
Reset(FileText);
while not Eof(FileText) do
begin
//读文件
Read(FileText, RecEmp);
Memo1.Lines.Add(RecEmp.EmpNo + RecEmp.EmpName);
end;
finally
//关闭文件
CloseFile(FileText);
end;
end;

procedure TForm1.Button3Click(Sender: TObject);
var
iFileHandle: Integer;
iFileLength: Integer;
iBytesRead: Integer;
Buffer: PChar;
i: Integer;

begin
try
//打开一个特定的文件并返回文件句柄
iFileHandle := FileOpen('d:\file.txt', fmOpenRead);
//返回文件共多少个字符
iFileLength := FileSeek(iFileHandle,1,0);

//指针指向文件开头
FileSeek(iFileHandle,0,0);
Buffer := PChar(AllocMem(iFileLength + 1));
//读取第三个参数的大小到内存Buffer,返回读取几个字符
iBytesRead := FileRead(iFileHandle, Buffer^, iFileLength+1);
//关闭文件
FileClose(iFileHandle);
with StringGrid1 do
begin
Cols[1].Text := '姓名';
Cols[2].Text := '分数';
//设置字体颜色
Canvas.Font.Color := clGreen;

end;

for i := 0 to iBytesRead-1 do
begin
StringGrid1.RowCount := StringGrid1.RowCount + 1;
//Cells[第几列,第几行] 都是从0开始的
StringGrid1.Cells[1,i+1] := Buffer[i];
StringGrid1.Cells[2,i+1] := IntToStr(Integer(Buffer[i]));
end;
finally
//释放内存
Freemem(Buffer);
end;
end;

end.


//以下是注释
{
function FileOpen(const FileName: string; Mode: LongWord): Integer;
函数变量Mode的取值:

fmCreate If the file exists, open for write access, otherwise, create a new file. Unlike the other constants, which are declared in the SysUtils unit, this constant is declared in tge classes unit.
fmOpenRead Open for read access only.
fmOpenWrite Open for write access only.
fmOpenReadWrite Open for read and write access.
fmShareCompat Compatible with the way FCBs are opened. Do not use this mode in cross-platform applications.
fmShareExclusive Read and write access is denied.

fmShareDenyWrite Write access is denied.
fmShareDenyRead Read access is denied. Do not use this mode in cross-platform applications.
fmShareDenyNone Allows full access for others.
}

{
function FileSeek(Handle, Offset, Origin: Integer): Integer; overload;
变量Origin的取值:

0 The file pointer is positioned Offset bytes from the beginning of the file.
1 The file pointer is positioned Offset bytes from its current position.
2 The file pointer is positioned Offset bytes from the end of the file.
}

{
分配内存
function AllocMem(Size: Cardinal): Pointer;
}

{
FileRead reads Count bytes from the file specified by Handle into the buffer
}
Delphi 文件的读取(1) procedure TForm1.Button1Click(Sender: TObject); var iFileHandle: Integer; iFileLength: Integer; iBytesRead: Integer; Buffer: PChar; i: Integer begin if OpenDialog1.Execute then begin try 阅读详情

相关推荐

15、VCL 中时间、目录与文件管理功能详解

本文详细介绍了VCL编程环境中时间、目录和文件管理的核心功能,涵盖时间格式字符串、目录创建与选择、文件查找与属性设置、文件名解析及文件内容读写等操作。结合代码示例与流程图,帮助开发者高效使用VCL提供的系统级函数,提升程序稳定性与开发效率。

food6的博客 41

读取PE文件OEP值

使用三种方法读出PE文件的oep值:文件流、文件读写函数、内存映射。带源码,程序在delphi 7+WinXP sp2 下编译通过

Delphi中字节长度计算的实用教程

本文还有配套的精品资源,点击获取 简介:在编程中,特别是在Delphi环境下,计算字节长度是一个关键操作,影响数据存储、网络传输和文件处理。文章详细介绍了如何在Delphi中计算不同数据类型(如字符串、文件、数组和内存块)的字节长度,并通过实例展示了计算方法。了解和掌握这些概念有助于提高代码性能,特别是在处理大量数据时。 1. 字节长度计算基础 字节长度计算...

weixin_28850145的博客 651

delphi TextFile文件操作

delphi TextFile文件操作,初学者可以参考参考

Delphi文件的操作FileOpen

var iFileHandle : Integer; iFileLength : Integer; iBytesRead, i : Integer; Buffer : ^char; strPath : String; begin // 取得文件路径 strPath := ExtractFilePath(Application.ExeName) +

叶岭 2951

Delphi7文件操作常用函数一

1. AssignFile、Erase AssignFile procedure AssignFile(var F; FileName: string);:给文件变量连接一个外部文件名。这里需要注意的是AssignFile不能用在已打开的文件上。 procedure TForm1.Button1Click(Sender: TObject); var text : String;

kimifdw的专栏 1万+

FileOpen 及相关文件读写

try //打开一个特定的文件并返回文件句柄 iFileHandle := FileOpen('d:\file.txt', fmOpenRead); //返回文件共多少个字符 iFileLength := FileSeek(iFileHandle,1,0); //指针指向文件开头 FileSeek(iFileHandle,0,0); Buffer := PChar(AllocMe

z1074971432的专栏 3413

DELPHI文件操作建议(reset打开只读文件处理)

使用reset打开只读文件,发现会出错,导致数据不准,查了下帮助,发现In Delphi code, Reset opens the existing external file with the name assigned to F using the mode specifi

我本善良编程专栏 4355

Delphi中获取文件大小

大概有这些方法可以获得文件大小FileSizeByName(需要引用IdGlobal单元)GetFileSizeFileSize(不能获得正在使用的文件大小)FileSeekTFileStream.Size下面是使用例子1。FileSizeByName(需要引用IdGlobal单元)beginif OpenDialog1.Execute thenbeginShowMessage(IntT...

weixin_30362233的博客 322

Delphi 文件目录函数大全

首部 function FileOpen(const FileName: string; Mode: LongWord): Integer; $[SysUtils.pas 功能 返回打开文件果 说明 Mode指定打开文件的模式(fmOpenRead,fmOpenWrite,fmOpenReadWrite....);打开失败则返回负数 参考 function Windows.CreateFil

技术资料收集站 584

Delphi文件读写

Delphi文件读写 - 类型文件读写 - 按数据结构存取

Delphi使用FileCreate创建一个图像文件.rar

Delphi在D盘中创建一个图象文件,使用FileCreate创建一个图像文件,FileCreate可以生成常规的Txt文本类文件,但是生成图像文件,没怎么使用这个方法,这个例子告诉你怎么创建图像文件:   if Application.MessageBox('确定要在D盘中创建一个图象文件吗?','提示',MB_YESNO) = ID_YES then   begin    createFile := FileCreate('D:\main.bmp');    if CreateFile = -1 then    begin    ShowMessage('文件创建失败.');    end;   end;

Delphi常用系统函数总结

字符串处理函数 Unit System 函数原型 function Concat(s1 [, s2,..., sn]: string): string; 说明 与 S := S1 + S2 + S3 ...; 相同. 将字符串相加. 函数原型 function Copy(S: string; Index, Count: Integer): string;说明 S : 字符串. I

技术资料收集站 253

delphi文件操作

Delphi中默认有input和output两个文件变量,使用可以不用定义,直接使用.   但: input:只读、output:只写。用时注意以免引起异常. 文件是由文件名标识的一组数据的集合,文件通常存放在磁盘上。源程序、学生档案记录、图形、音乐等均可以作为文件存储在磁盘上。操作系统是以文件为单位对数据进行管理的,也就是说,如果想读取外存介质上的数据,必须先按文件名找到所指定

全欣 的专栏 2465

delphi seek函数中参数说明

一直不明白delphi中seek,fileseek等函数中参数的真是意义,比如:FileSeek(FileHandle,0,2)在delphi中取出来的是文件的长度。 这类函数的最后一个参数说明:移动的起始位置, 0-最开始, 1-当前位置, 2-文件尾部。 记录哈,便于以后使用。。。。。

coolhao123的专栏 5498

文件目录操作函数

首部 function FileOpen(const FileName: string; Mode: LongWord): Integer; $[SysUtils.pas功能 返回打开文件果说明 Mode指定打开文件的模式(fmOpenRead,fmOpenWrite,fmOpenReadWrite....);打开失败则返回负数参考 function Windows.CreateFile例子///

Tercel99的专栏 1347

delphi操作文本文件简介

文件是同一类型元素的有序集合,是内存与外设间传输数据的渠道。一些外设如显示器、键盘、打印机等都可以看作文件,但最常用的还是磁盘文件,这也是我们主要讨论的对象。    Delphi继承了Object Pascal的文件管理功能,并有很大的发展,其中最主要的是提供了用于文件管理的标准控件,同时也提供了更多的文件管理函数。利用Delphi的强大功能,开发一个自己的文件管理系统就成为很容易的事。    首

冷月宫主的专栏 1350

DELPHI基础教程 第六章 文件管理

第六章 文件管理 文件是同一类型元素的有序集合,是内存与外设间传输数据的渠道。一些外设如显示器、键盘、打印机等都可以看作文件,但最常用的还是磁盘文件,这也是本章我们主要讨论的对象。 Delphi继承了Object Pascal的文件管理功能,并有很大的发展,其中最主要的是提供了用于文件管理的标准控件,同时也提供了更多的文件管理函数。利用Delphi...

weixin_30642561的博客 320

七、文件操作函数

七、文件操作函数 文件操作函数完成文件的输入、修改、输出、有效性检查、删除以及确定文件长度等功能。在访问文件中的数据之前,需要首先打开文件文件用毕之后,需要关闭文件文件的打开方式有两种:行模式(Line Mode)和流模式(Stream Mode)。 在行模式下,读取数据时,一次写入一行,直到读取到回车(CR)换行(LF)字符或文件的结束符时停止;写文件时,一次写入一行,在每行的末尾自动添加上回车换行字符(具体添加的字符与操作系统有关)。 在流模式下,读取数据时,按字节一次读取,直到文件结束符(E

huang714的专栏 1375
上一篇: sql 中 IN 和 EXISTS区别
下一篇: 封装Hibernate对数据库的操作,包括: 添加,删除,修改,加载,查询,分页查询,命名查询
horselily
博客等级 码龄24年 3粉丝 0原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值