鹏仔先生-趣站-一个有趣的网站!
鹏仔先生

鹏仔先生

当前位置:网站首页 > 文字大全 > 正文

delphi如何读写二进制文件怎么解决

作者:百变鹏仔日期:2023-08-11 19:36:23浏览:6分类:文字大全

delphi如何读写二进制文件怎么解决

二进制是什么 0001 显示就是二进制 它可以转换十进制 1 其实它还是二进制

就算转换十六进制 1 还是二进制,,我们操作的都是二进制

转换过来只是为了看得更清楚 更明朗

二进制 0101 十进制 10 十六进制 A 你可以看ASCII 表

var

fs:TFileStream; //定义fs 为文件流

buf:array[0..1024]of byte; //定义buf 为数组 0至1024

fs:=TFileStream.Create('file',frReadWrite); //初始化文件流 file 就是文件名如c:\1.bmp frReadWrite 给读写的权限

fs.Read(buf,sizeof(buf)); //读文件流到buf sizeof取buf 大小

delphi 中 读取文件

在使用 Delphi 语言进行软件应用开发过程中,常见的一种应用是操纵 excel 进行读取、生成报表的功能开发,在此总结一下常用的三种方法及其优缺点:

一、使用 COM 方法

此方法的原理,是通过 CreateOleOjbect 函数来调用 windows 系统中注册的 Excel 信息,来建立对 Excel.Application 的引用来操作 Excel。示例代码如下:

procedure?ReadExcels;

var

i,j:?Integer;

begin

exlApp?:=?CreateOleObject('Excel.Application'); exlApp.Visible?:=?False; exlApp.WorkBooks.Open(fsFileName); iRowCount?:=?exlApp.ActiveSheet.UsedRange.Rows.Count; iColCount?:=?exlApp.ActiveSheet.UsedRange.Columns.Count; for?i?:=?2?to?iRowCount?do

for?j:=1?to?icolcount?do?

begin

ShowMessage(exlApp.workbooks[1].sheets[1].cells[i,j]);?

end;

end;

优点:可以动态创建,基本不用管软件运行电脑安装的 Excel 版本都能运行;缺点:需要安装 Excel,程序编写过程中缺乏函数、成员等提示,运行时刻出错不易调试。?

二、使用 delphi 自带的 Office 控件

此方法与方法一原理类似,区别在于将 Excel.Application 等封装成控件。示例代码如下:

ExcelApplication1.Workbooks.Open?('c:\test.xls', EmptyParam?,?EmptyParam?,?EmptyParam?,?EmptyParam?, EmptyParam?,?EmptyParam?,?EmptyParam?,?EmptyParam?, EmptyParam?,?EmptyParam?,?EmptyParam?,?EmptyParam?,?0);

ExcelApplication1.WorksSheets['Sheet2']?.Activate;

ExcelApplication1.Cells[1,4].Value?:=?'test';

优点:程序编写过程中可以得到函数、成员等提示;缺点:需要安装 Excel,不同的 Excel 版本,需要有针对性的建立组件。?

三、使用第三方控件

XLSReadWrite 作为一个优秀的操作 Excel 的控件,提供了简便快捷读取、写入Excel文件的好办法。示例代码:

var s:string; xls:TXlsReadWrite;

begin

Xls.filename:='c:\123.xls'; xls.read; s:=xls.sheets[0].asstring[0,0]; showmessage(s); xls.sheets[0].asstring[0,0]:='新闻界'; xls.savetofile('c:\234.xls');

end;

优点:可在本机未安装 excel 的前提下读取 Excel 文件,读、写等操作简便;缺点:第三方控件,需要自行安装 。

type

TFileStruct = record

name: string[20];

age: Integer;

salary: Real;

end;

procedure TForm1.Button1Click(Sender: TObject);

var

tf: File of TFileStruct;

tfsTmp: TFileStruct;

begin

tfsTmp.name:= 'Hello World';

tfsTmp.age:= 18;

tfsTmp.salary:= 1000.00;

AssignFile(tf, '123.txt');

Rewrite(tf);

Write(tf, tfsTmp);

CloseFile(tf);

end;

procedure TForm1.Button2Click(Sender: TObject);

var

tf: file of TFileStruct;

tfsTmp: TFileStruct;

begin

AssignFile(tf, '123.txt');

Reset(tf);

Read(tf, tfsTmp);

CloseFile(tf);

Memo1.Lines.Add(Format('%s', [tfsTmp.name]));

Memo1.Lines.Add(Format('%d', [tfsTmp.age]));

Memo1.Lines.Add(Format('%m', [tfsTmp.salary]));

end;

按照你说的方法测试了一下,read函数不应该有问题,如上所示,是不是其它地方引起的?

鹏仔 微信 15129739599

百科狗 baikegou.com

免责声明:我们致力于保护作者版权,注重分享,当前被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理!邮箱:344225443@qq.com)

图片声明:本站部分配图来自网络。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!

  • 上一篇:已经是第一篇了
  • 下一篇:已经是最后一篇了
内容声明:本文中引用的各种信息及资料(包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主体(包括但不限于公司、媒体、协会等机构)的官方网站或公开发表的信息。部分内容参考包括:(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供参考使用,不准确地方联系删除处理!本站为非盈利性质站点,本着为中国教育事业出一份力,发布内容不收取任何费用也不接任何广告!)