DelphiXe 中静态数组TByteArray和动态数组TBytes /array of byte 的区别
在应用中发现静态数组和动态数组是有区别的:
procedure TForm1.Button1Click(Sender: TObject);
var
  RsltStream: TMemoryStream;
  picBuffer: TByteArray;
begin
  RsltStream := TMemoryStream.Create;
  RsltStream.LoadFromFile('e:\pic.txt');
  RsltStream.Position := 0;                                        // 流读取操作前必须将指针回到起始位
  RsltStream.ReadBuffer(picBuffer,RsltStream.Size);    //静态数组中picBuffer 和picBuffer[0] 的指针是相同的
end;
procedure TForm1.Button1Click(Sender: TObject);
var
  RsltStream: TMemoryStream;
  picBuffer: TBytes;   //array of byte
begin
  RsltStream := TMemoryStream.Create;
  RsltStream.LoadFromFile('e:\pic.txt');
  RsltStream.Position := 0;                                           // 流读取操作前必须将指针回到起始位
setlength(picBuffer, RsltStream.Size);                         //给动态数组定义长度
  RsltStream.ReadBuffer(picBuffer[0],RsltStream.Size);   //动态数组中必须用picBuffer[0] ,否则地址错误,数据也是错误的
end;
转自:http://www.cnblogs.com/wxy8/archive/2011/01/28/1946921.html
DelphiXe 中静态数组TByteArray和动态数组TBytes /array of byte 的区别的更多相关文章
- WPF中静态引用资源与动态引用资源的区别
		
WPF中静态引用资源与动态引用资源的区别 WPF中引用资源分为静态引用与动态引用,两者的区别在哪里呢?我们通过一个小的例子来理解. 点击“Update”按钮,第2个按钮的文字会变成“更上一层楼”, ...
 - windows中静态库lib和动态dll的区别及使用方法
		
1. 静态库lib和动态dll的区别 1.1 项目类型 VS在建Win32项目时,有以下选项: windows应用程序控制台应用程序DLL静态库最后两个类型:DLL和静态库,这两种项目类型是不可以单独 ...
 - go 动态数组 二维动态数组
		
go使用动态数组还有点麻烦,比python麻烦一点,需要先定义. 动态数组申明 var dynaArr []string 动态数组添加成员 dynaArr = append(dynaArr, &quo ...
 - C#中的静态常量(const)和动态常量(static和readonly)用法和区别
		
C#中有两种常量类型,分别为readonly(运行时常量)与const(编译时常量),本文将就这两种类型的不同特性进行比较并说明各自的适用场景.工作原理 readonly为运行时常量,程序运行时进行赋 ...
 - C++中关于[]静态数组和new分配的动态数组的区别分析
		
这篇文章主要介绍了C++中关于[]静态数组和new分配的动态数组的区别分析,很重要的概念,需要的朋友可以参考下 本文以实例分析了C++语言中关于[]静态数组和new分配的动态数组的区别,可以帮助大家加 ...
 - C++Builder 中动态数组的使用(转)
		
源:http://i.cnblogs.com/EditPosts.aspx?opt=1 和AnsiString类型一样,动态数组是为了和DELPHI中的动态数组相兼容而定义,在BCB中,动态数组是用模 ...
 - VB默认属性、动态数组、Range对象的默认属性的一点不成熟的想法
		
1.默认属性 VB6.0有默认属性的特性.当没有给对象指定具体的属性时,"默认属性"是VB6.0将使用的属性.在某些情形下,省略常用属性名,使代码更为精简. 因为CommandBu ...
 - ALLOCATE语句分配FORTRAN动态数组方法(转自http://blog.csdn.net/zhuxianjianqi/article/details/8067174)
		
数组的动态分配 a) 可分配数组 数组可以是静态的也可以是动态的.如果数组是静态的,则在编译时就被分配了固定的储存空间,并且直到程序退出时才被释放.程序运行时静态数组的大小不能改变.静态数组的缺 ...
 - Delphi 的动态数组
		
传统的Pascal 语言其数组大小是预先确定的,当你用数组结构声明数据类型时,你必须指定数组元素的个数.专业程序员也许知道些许动态数组的实现技术,一般是采用指针,用手工分配并释放所需的内存. Delp ...
 
随机推荐
- ubuntu软件包管理
			
ubuntu安装好了后首先要会下载和管理系统的软件包:ubuntu的软件管理方式是apt-get 安装软件包apt-get harvey@ubuntu:/var/cache/apt$ which ap ...
 - android的百度地图开发(一)
			
1,注册百度开发者账号 2,申请key ,注意开发版SH和发布版的SH 获取开发版SHA1: 输入命令:keytool -list -v -keystore debug.keystore,回车输入 ...
 - ws2s函数
			
std::string ws2s(const std::wstring& str) { char* pElementText; int iTextLen; // wide char to mu ...
 - 使用bottle进行web开发(1):hello world
			
为什么使用bottle?因为简单,就一个py文件,和其他模块没有依赖,3000多行代码. http://www.bottlepy.org/docs/dev/ 既然开始学习,就安装它吧. pip3 in ...
 - Android 之 AlarmManager(定时器) 的介绍和使用
			
AlarmManager 包含的主要方法: // 取消已经注册的与参数匹配的定时器 void cancel(PendingIntent operation) //注册一个新的延迟定时器void set ...
 - CodeForces 450B Jzzhu and Sequences 【矩阵快速幂】
			
Jzzhu has invented a kind of sequences, they meet the following property: You are given x and y, ple ...
 - Python的网络编程[3] -> BOOTP 协议[1] -> BOOTP 的 Python 实现
			
BOOTP实现 / BOOTP Implement 目录 BOOTP 的服务器建立过程 BOOTP 的客户端建立过程 Note: 理论部分请参考文末相关阅读链接 1 BOOTP 的服务器建立过程 服务 ...
 - SQL注入漏洞原理
			
系统中安全性是非常重要的,为了保证安全性很多解决方案被应用到系统中,比如架设防火墙防止数据库服务器直接暴露给外部访问者.使用数据库的授权机制防止未授权的用户访问数据库,这些解决方案可以很大程度上避免了 ...
 - 一些 iOS 常用的第三方库
			
网络通信 AFNetworking 轻量级的通讯类库,使用非常简单.建议更新到最新版,前几天看新闻说之前有个逻辑性的 bug https://github.com/AFNetworking/AFNet ...
 - IOS调用WCF提供的服务方法,但是方法的参数是WCF那边自定义的对象,这样有办法调用么,如果可以IOS应该怎么传参呢?请问有了解的么,
			
最近做一个项目后端使用WCF接收Android手机拍照并带其它参数保存到服务器里:刚好把最近学习的WCF利用上,本以为是个比较简单的功能应该很好实现,没想到其中碰到不少问题,在网上搜索很久一直没有想到 ...