Delphi中的操作二进制文件的两个重要函数
对于通过Byte数组进行文件操作的,在FTP中经常会使用到,我也是在Delphi调用Web Service进行文件的上传和下载时找到这两个函数的,挺好用的,推荐给大家。(申明:非本人所写)
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;
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;
转载于:https://www.cnblogs.com/JackSun/archive/2010/09/28/1837374.html
Delphi中的操作二进制文件的两个重要函数相关推荐
- 奇淫怪巧之在Delphi中调用不申明函数
前一阵子,研究了一段时间的Win32Asm,研究到后来发现Win32的ASM实际上还是和C版的介绍的一样.甚至还封装了一个简版的类似VCL库结构框架的32ASM结构库,不过搞着搞着就没兴趣了,也没继续 ...
- Delphi中准确记录程序执行时间
知道如何在你的Windows和跨平台应用程序中获得一个操作的确切执行时间的信息,在各种情况下都是有用的.例如,当你需要向用户展示一个长的操作的执行时间时,它可能是必要的(顺便说一下,在这种情况下,很少 ...
- DELPHI中操作ACCESS数据库
DELPHI中操作ACCESS数据库(建立.mdb文件,压缩数据库) 以下代码在WIN2K,D6,MDAC2.6下测试通过, 编译好的程序在WIN98第二版无ACCESS环境下运行成功. //在之前u ...
- DELPHI中鼠标的各种操作
{鼠标:右击,左击,单击,双击,滚轮,拖曳} Delphi程序设计中的鼠标控制 在Windows环境下,鼠标和键盘是主要的输入设备. 在Delphi中几乎每个对象都具有反映鼠标控制的事件, 这些事件的 ...
- .net中对HTTP请求的两种请求:Get和Post的操作
.net中对HTTP请求的简单操作总结 第一部分,HTTP协议的简单了解 一. 什么是HTTP协议 超文本传输协议 (HTTP-Hypertext transfer protoco ...
- ITK:自定义操作以对应两个图像中的像素
ITK:自定义操作以对应两个图像中的像素 内容提要 输出结果 C++实现代码 内容提要 对两个图像中的相应像素应用预定义的操作. 输出结果 pixel1 was = 2 pixel2 was = 5 ...
- Delphi中exit、break、continue等跳出操作的区别
Delphi中表示跳出的有break,continue,abort,exit,halt,runerror等 1.break 强制退出最近的一层循环(注意:只能放在循环里:而且是只能跳出最近的一层循环) ...
- Delphi中比较两个对象是否一致及地址是否相同
在delphi中,C#也是如此,对象的地址与对象变量(引用)的地址不是同一个概念.要加以区别. procedure TForm1.btn1Click(Sender: TObject); var ...
- delphi中利用Indy的TIdFtp控件实现FTP协议
2019独角兽企业重金招聘Python工程师标准>>> delphi中利用Indy的TIdFtp控件实现FTP协议版权声明:本文为博主原创文章,未经博主允许不得转载.现在很多应用都需 ...
最新文章
- c++标准I/O输入流
- iOS Hacker dumpdecrypted脱壳
- mysql mybatis配置_mybatis详解 与配置mybatis+spring+mysql.doc
- 使用.Net Core实现FNV分布式hash一致性算法
- 蒙哥马利java算法_算法详解 - 蒙哥马利算法的概念与原理
- KeyMob聚合平台:为开发者塑造广告变现形式
- linux服务器数据备份到本地硬盘_等保数据备份和恢复关键点,这些你该知道!...
- 多线程编程:线程死锁的原因以及解决方法
- python中的框架、库、包、模块都是什么意思_Python中的import,from...import以及模块、包、库的概念...
- arcpy 创建弧度制与十进制互换的个人工具箱
- 基于springboot+vue的医院预约系统(前后端分离)
- wine android模拟器,Mac 下运行window 软件,(wine 模拟器)
- python文件操作的几种方法with open,r,w,b
- P4118 [Ynoi2016]炸脖龙I
- Google Common Lisp 风格指南
- 树莓派c语言百度语音识别,树莓派语音识别
- Android开机启动流程
- odoo中的消息通知
- 圣思园官方论坛正式上线,众板块版主火热招募中,欢迎围观
- 最新GLPI--优秀的linux开源IT资产管理系统
热门文章
- 2002-2003 ACM-ICPC Northeastern European Regional Contest (NEERC 02)
- 发布虚拟机WEB服务 备忘
- 话说微软刚出的同步框架Sync Services
- linux ssh 色彩,定制多彩缤纷的 Linux SSH,告别黑白灰!
- 在c#中用mutex类实现线程的互斥_C# 多线程系列(4)进程同步Mutex类
- 互联网开源贡献是什么意思_为什么我们为开源软件做出贡献?
- 如何双启动Linux和Windows
- 开放式系统编程技术_使用开放式硬件构建更好的辅助技术
- (26) CSS3 2D转换transform
- (18)css常用样式—定位属性