Delphi中的操作二进制文件的两个重要函数

摘要:
Delphi中的操作二进制文件的两个重要函数对于通过Byte数组进行文件操作的,在FTP中经常会使用到,我也是在Delphi调用WebService进行文件的上传和下载时找到这两个函数的,挺好用的,推荐给大家。
Delphi中的操作二进制文件的两个重要函数

对于通过Byte数组进行文件操作的,在FTP中经常会使用到,我也是在Delphi调用Web Service进行文件的上传和下载时找到这两个函数的,挺好用的,推荐给大家。(申明:非本人所写)

1. 将Byte数组生成文件
procedureByteArrayToFile(constByteArray : TByteDynArray;constFileName : 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数组
functionFiIeToByteArray(constFileName: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;

免责声明:文章转载自《Delphi中的操作二进制文件的两个重要函数》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇在Windows下利用cmd命令行启动tomcat10大H5前端框架(转)下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

总线(BUS)和计算机的字长

1.总线(BUS) 总线(BUS)是指计算机组件间规范化的交换数据(data)的方式,即以一种通用的方式为各组件提供数据传送和控制逻辑。从另一个角度来看,如果说主板(Mother Board)是一座城市,那么总线就像是城市里的公共汽车(bus),能按照固定行车路线,传输来回不停运作的比特(bit)。这些线路在同一时间内都仅能负责传输一个比特。因此,必须同时...

delphi实现窗体组建随窗体大小改变而改变

在网上查了许多资料去论述如何在dephi中去实现组件随窗口大小的变化而变化,然都不尽如人意。有人说用组件的align + anchors 这两个属性去控制,但是我用了之后,让我大惊失色。把anchors属性下面的四个值都变为true.如果用户用鼠标去拖动窗口,那么窗口上的组件像是中了夺命书生的面目全非脚一样,基本上就没有所谓的五官之态。 下面就介绍我的方法...

二进制运算-十进制与二进制的转换

在学习JDK源码和JAVA一些开源框架源码的时候经常会碰到位运算,要搞懂位运算就得弄明白二进制和十进制之间的转换 一、十进制转换成二进制 1.正整数转换成二进制 十进制整数转换成二进制就是不停的除以二,直到不足二为止(0或者1),然后记录余数,从下往上排列出来就是二进制的值 举个例子:5和8转换成二进制 5的二进制为101,8的二进制为1000 2.负整...

图片转二进制的两种方式

1 //对图片要求不高的时候建议用jpg,要求比较高的时候用png 2 3 //方式一: 4 //let imageData = UIImagePNGRepresentation(image)! 5 6 //方式二: 7 //参数2(comp...

二进制协议gob及msgpack介绍

本文主要介绍二进制协议gob及msgpack的基本使用。 最近在写一个gin框架的session服务时遇到了一个问题,Go语言中的json包在序列化空接口存放的数字类型(整型、浮点型等)都序列化成float64类型。 我们构造一个结构体如下: type s struct { data map[string]interface{} } json序列化的问...

帧动画和骨骼json、极速、二进制对比

对比总结: 1. 帧动画的效率最高,但是图片超过一定帧数,资源图片非常大。比较适合帧数少,大量动画存在,要求效率高的场合。 骨骼json效率较低,已经不推荐使用。 骨骼极速,不支持网格等。 骨骼二进制,最新的格式。资源小,效率高。导出时将骨骼跑一遍,将计算数据序列化成二进制,使用时反序列化,节约了大量cpu运算,所以效率较json格式高。  (我猜是这样...