对于通过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;

转载于:https://www.cnblogs.com/JackSun/archive/2010/09/28/1837374.html

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

  1. 奇淫怪巧之在Delphi中调用不申明函数

    前一阵子,研究了一段时间的Win32Asm,研究到后来发现Win32的ASM实际上还是和C版的介绍的一样.甚至还封装了一个简版的类似VCL库结构框架的32ASM结构库,不过搞着搞着就没兴趣了,也没继续 ...

  2. Delphi中准确记录程序执行时间

    知道如何在你的Windows和跨平台应用程序中获得一个操作的确切执行时间的信息,在各种情况下都是有用的.例如,当你需要向用户展示一个长的操作的执行时间时,它可能是必要的(顺便说一下,在这种情况下,很少 ...

  3. DELPHI中操作ACCESS数据库

    DELPHI中操作ACCESS数据库(建立.mdb文件,压缩数据库) 以下代码在WIN2K,D6,MDAC2.6下测试通过, 编译好的程序在WIN98第二版无ACCESS环境下运行成功. //在之前u ...

  4. DELPHI中鼠标的各种操作

    {鼠标:右击,左击,单击,双击,滚轮,拖曳} Delphi程序设计中的鼠标控制 在Windows环境下,鼠标和键盘是主要的输入设备. 在Delphi中几乎每个对象都具有反映鼠标控制的事件, 这些事件的 ...

  5. .net中对HTTP请求的两种请求:Get和Post的操作

    .net中对HTTP请求的简单操作总结 第一部分,HTTP协议的简单了解 一.           什么是HTTP协议 超文本传输协议 (HTTP-Hypertext transfer protoco ...

  6. ITK:自定义操作以对应两个图像中的像素

    ITK:自定义操作以对应两个图像中的像素 内容提要 输出结果 C++实现代码 内容提要 对两个图像中的相应像素应用预定义的操作. 输出结果 pixel1 was = 2 pixel2 was = 5 ...

  7. Delphi中exit、break、continue等跳出操作的区别

    Delphi中表示跳出的有break,continue,abort,exit,halt,runerror等 1.break 强制退出最近的一层循环(注意:只能放在循环里:而且是只能跳出最近的一层循环) ...

  8. Delphi中比较两个对象是否一致及地址是否相同

    在delphi中,C#也是如此,对象的地址与对象变量(引用)的地址不是同一个概念.要加以区别. procedure TForm1.btn1Click(Sender: TObject); var     ...

  9. delphi中利用Indy的TIdFtp控件实现FTP协议

    2019独角兽企业重金招聘Python工程师标准>>> delphi中利用Indy的TIdFtp控件实现FTP协议版权声明:本文为博主原创文章,未经博主允许不得转载.现在很多应用都需 ...

最新文章

  1. c++标准I/O输入流
  2. iOS Hacker dumpdecrypted脱壳
  3. mysql mybatis配置_mybatis详解 与配置mybatis+spring+mysql.doc
  4. 使用.Net Core实现FNV分布式hash一致性算法
  5. 蒙哥马利java算法_算法详解 - 蒙哥马利算法的概念与原理
  6. KeyMob聚合平台:为开发者塑造广告变现形式
  7. linux服务器数据备份到本地硬盘_等保数据备份和恢复关键点,这些你该知道!...
  8. 多线程编程:线程死锁的原因以及解决方法
  9. python中的框架、库、包、模块都是什么意思_Python中的import,from...import以及模块、包、库的概念...
  10. arcpy 创建弧度制与十进制互换的个人工具箱
  11. 基于springboot+vue的医院预约系统(前后端分离)
  12. wine android模拟器,Mac  下运行window 软件,(wine 模拟器)
  13. python文件操作的几种方法with open,r,w,b
  14. P4118 [Ynoi2016]炸脖龙I
  15. Google Common Lisp 风格指南
  16. 树莓派c语言百度语音识别,树莓派语音识别
  17. Android开机启动流程
  18. odoo中的消息通知
  19. 圣思园官方论坛正式上线,众板块版主火热招募中,欢迎围观
  20. 最新GLPI--优秀的linux开源IT资产管理系统

热门文章

  1. 2002-2003 ACM-ICPC Northeastern European Regional Contest (NEERC 02)
  2. 发布虚拟机WEB服务 备忘
  3. 话说微软刚出的同步框架Sync Services
  4. linux ssh 色彩,定制多彩缤纷的 Linux SSH,告别黑白灰!
  5. 在c#中用mutex类实现线程的互斥_C# 多线程系列(4)进程同步Mutex类
  6. 互联网开源贡献是什么意思_为什么我们为开源软件做出贡献?
  7. 如何双启动Linux和Windows
  8. 开放式系统编程技术_使用开放式硬件构建更好的辅助技术
  9. (26) CSS3 2D转换transform
  10. (18)css常用样式—定位属性