2019独角兽企业重金招聘Python工程师标准>>>

网上广为流传的两个函数,确实好用。记录一下

procedure VariantToStream (const v : OleVariant; Stream : TMemoryStream);
var p : pointer;
begin Stream.Position := 0; Stream.Size := VarArrayHighBound (v, 1) - VarArrayLowBound (v, 1) + 1;  //其实可以直接取下维作为流大小,因为一般情况下变体数组上维为0的p := VarArrayLock (v);   //我写程序时,就是到此卡住了,因为变体数组是一种安全数组,它是有描述数据的数组,v[0]才是它的真实起始地址,但就是很难得到它的地址,而这个函数刚好处理了这个问题!Stream.Write (p^, Stream.Size);  //此句让我这个初学者惊叹,也不是没有这样用过,只是没有在数组中这样结合用过,呵呵,学习学习!VarArrayUnlock (v);   //再使用了VarArratLock()函数以后,一定要用此函,不然会报错的!Stream.Position := 0;
end;
procedure StreamToVariant (Stream : TMemoryStream; var v : OleVariant);
var p : pointer;
begin v := VarArrayCreate ([0, Stream.Size - 1], varByte);   //也学习一下这个函数,它是用来建立一个变体数组p := VarArrayLock (v);   //其它就没有什么了,基本跟上面的是相反的!Stream.Position := 0; Stream.Read (p^, Stream.Size);   //其实这两个过程的妙处就在此了,指针的应用,棒极了VarArrayUnlock (v);
end;

转载于:https://my.oschina.net/handsomedz/blog/727463

delphi variant和stream相互转换的函数相关推荐

  1. 用Delphi实现Windows的鼠标钩子函数

    用Delphi实现Windows的鼠标钩子函数 Delphi是基于PASCAL语言的Windows编程工具,功能十分强大.然而在Delphi的帮助 文件中,对Windows API函数的说明沿袭了 V ...

  2. php 数组转xml 函数,PHP数组和XML相互转换的函数

    这篇文章主要介绍了关于PHP数组和XML相互转换的函数 ,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下//数组转xml function ArrToXml($arr) { if(!is ...

  3. Delphi System 提供的编译期函数(Dec,Inc,Odd,Pred,Succ,Ord,Chr,Low,High,Sizeof)

    Delphi System 提供的编译期函数(Dec,Inc,Odd,Pred,Succ,Ord,Chr,Low,High,Sizeof) Dec //将例程中的参数值递减1或一个特定的值,其中特定值 ...

  4. Arduino 基于Stream类的函数详细说明

    Arduino 基于Stream类的函数详细说明 Stream类官方资料:https://www.arduino.cc/reference/en/language/functions/communic ...

  5. Oracle数据二进制传输,学习笔记:Oracle数值函数 十进制与二进制相互转换的函数使用案例...

    天萃荷净 ORACLE 十进制与二进制互转函数,开发DBA向我咨询数值转换的方法,Oracle数值转换函数NUMBER_TO_BIT等函数可用 1.Oracle数值转换之十进制转换二进制 CREATE ...

  6. [源码]Delphi源码免杀之函数动态调用 实现免杀的下载者

    [免杀]Delphi源码免杀之函数动态调用 实现免杀的下载者 2013-12-30 23:44:21         来源:K8拉登哥哥's Blog   自己编译这份代码看看 过N多杀软  没什么技 ...

  7. System.IO.Stream 中Flush函数的用法

    在实现缓冲区的流上重写 Flush .使用此方法将所有信息从基础缓冲区移动到其目标或清除缓冲区,或者同时执行这两种操作.根据对象的状态,可能需要修改流内的当前位置(例如,在基础流支持查找的情况下即如此 ...

  8. delphi 查找指定后缀名的函数_Excel明星函数系列2:掌握这5类VLOOKUP查询方法,搞定查询...

    VLOOKUP函数的介绍: 数据查找匹配的核心技能 企业级必须掌握之函数 VLOOKUP函数是Excel中的一个纵向查找函数,它与LOOKUP函数和HLOOKUP函数属于一类函数,在工作中都有广泛应用 ...

  9. Delphi的windows剪切板操作函数

    1. Clipbrd函数 function Clipboard: TClipboard;:若应用程序从未使用过剪贴板,则调用该函数形成新的剪贴板:若之前使用过剪贴板则返回使用过的剪贴板. 属性: As ...

最新文章

  1. 2022-2028年中国新能源公交车行业深度调研及投资前景预测报告
  2. 《Java程序设计》实验二 实验报告
  3. 机器学习入门学习资料推荐
  4. 【算法系列之六】两整数之和
  5. vim 高亮显示php代码
  6. Python爬虫环境常用库安装
  7. Vue自定义组件数组型双向绑定
  8. SU命令的功能及基本用法--psmerge
  9. bzoj5406: Gift
  10. JMeter(五)--检查点
  11. mindray心电监护仪使用说明_界面张力仪的使用步骤以及画面清晰度相关说明
  12. 浅谈CIVIL 3D
  13. 机器学习——人工神经网络(NN)
  14. 【neutron】mitaka版本openstack网络之open vSwitch
  15. java 继承抽象类_java基础之继承,抽象类
  16. Linux系统引导过程及引导修复
  17. office 365 获取会议室日历
  18. Linux进程间通信——管道通信详解
  19. 算法练习(21):Frog Jump
  20. android usb卸载不了,Android 安全卸载U盘的方法

热门文章

  1. IP BASE对OSPF的支持版本
  2. 组策略轻松实现软件发布,Active Directory系列之二十二
  3. jQuery中的$.getJSON
  4. 内蒙古公安原创扫黑除恶主题MV《以警之名》全国首发
  5. Quartz 实现分布式任务调度
  6. postgresql创建表
  7. table中嵌套table,如何用jquery来控制奇偶行颜色
  8. jeecms 2012 源码分析(2) 前台栏目页静态化分析
  9. ASP条件语句之IF语句
  10. ConfigurationProperties