delphi variant和stream相互转换的函数
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相互转换的函数相关推荐
- 用Delphi实现Windows的鼠标钩子函数
用Delphi实现Windows的鼠标钩子函数 Delphi是基于PASCAL语言的Windows编程工具,功能十分强大.然而在Delphi的帮助 文件中,对Windows API函数的说明沿袭了 V ...
- php 数组转xml 函数,PHP数组和XML相互转换的函数
这篇文章主要介绍了关于PHP数组和XML相互转换的函数 ,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下//数组转xml function ArrToXml($arr) { if(!is ...
- 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或一个特定的值,其中特定值 ...
- Arduino 基于Stream类的函数详细说明
Arduino 基于Stream类的函数详细说明 Stream类官方资料:https://www.arduino.cc/reference/en/language/functions/communic ...
- Oracle数据二进制传输,学习笔记:Oracle数值函数 十进制与二进制相互转换的函数使用案例...
天萃荷净 ORACLE 十进制与二进制互转函数,开发DBA向我咨询数值转换的方法,Oracle数值转换函数NUMBER_TO_BIT等函数可用 1.Oracle数值转换之十进制转换二进制 CREATE ...
- [源码]Delphi源码免杀之函数动态调用 实现免杀的下载者
[免杀]Delphi源码免杀之函数动态调用 实现免杀的下载者 2013-12-30 23:44:21 来源:K8拉登哥哥's Blog 自己编译这份代码看看 过N多杀软 没什么技 ...
- System.IO.Stream 中Flush函数的用法
在实现缓冲区的流上重写 Flush .使用此方法将所有信息从基础缓冲区移动到其目标或清除缓冲区,或者同时执行这两种操作.根据对象的状态,可能需要修改流内的当前位置(例如,在基础流支持查找的情况下即如此 ...
- delphi 查找指定后缀名的函数_Excel明星函数系列2:掌握这5类VLOOKUP查询方法,搞定查询...
VLOOKUP函数的介绍: 数据查找匹配的核心技能 企业级必须掌握之函数 VLOOKUP函数是Excel中的一个纵向查找函数,它与LOOKUP函数和HLOOKUP函数属于一类函数,在工作中都有广泛应用 ...
- Delphi的windows剪切板操作函数
1. Clipbrd函数 function Clipboard: TClipboard;:若应用程序从未使用过剪贴板,则调用该函数形成新的剪贴板:若之前使用过剪贴板则返回使用过的剪贴板. 属性: As ...
最新文章
- 2022-2028年中国新能源公交车行业深度调研及投资前景预测报告
- 《Java程序设计》实验二 实验报告
- 机器学习入门学习资料推荐
- 【算法系列之六】两整数之和
- vim 高亮显示php代码
- Python爬虫环境常用库安装
- Vue自定义组件数组型双向绑定
- SU命令的功能及基本用法--psmerge
- bzoj5406: Gift
- JMeter(五)--检查点
- mindray心电监护仪使用说明_界面张力仪的使用步骤以及画面清晰度相关说明
- 浅谈CIVIL 3D
- 机器学习——人工神经网络(NN)
- 【neutron】mitaka版本openstack网络之open vSwitch
- java 继承抽象类_java基础之继承,抽象类
- Linux系统引导过程及引导修复
- office 365 获取会议室日历
- Linux进程间通信——管道通信详解
- 算法练习(21):Frog Jump
- android usb卸载不了,Android 安全卸载U盘的方法