字串转字节数组

一、CopyMemory  

var
s:PAnsiChar;
ary:TArray<Byte>;
bt:Byte;
begin
s:='Form Delphi';
SetLength(ary,Length(string(s))+);
CopyMemory(ary,s,Length(s));
mmo1.Clear;
for bt in ary do
begin
mmo1.Lines.Append(Chr(bt));
end;
end;

二、Move

var
s:PAnsiChar;
pb:PByte;
i:Byte;
begin
s:='From Delphi';
GetMem(pb,Length(string(s))+);
Move(s^,pb^,Length(string(s))+);
mmo1.Clear;
{$POINTERMATH ON}
for i:= to Length(string(s)) do
begin
mmo1.Lines.Append(Chr(pb[i]));
end;
{$POINTERMATH OFF}
FreeMem(pb,Length(string(s))+);
end;

三、Move

var
s:PAnsiChar;
pb:PByte;
i:Byte;
begin
s:='From Delphi';
GetMem(pb,Length(string(s))+);
Move(s^,pb^,Length(string(s))+);
mmo1.Clear;
i:=;
while (pb^<>Ord(#)) do
begin
mmo1.Lines.Append(Chr(pb^));
Inc(pb);
Inc(i);
end;
Dec(pb,i);
FreeMem(pb,Length(string(s))+);
end;

Delphi中Move、CopyMemory操作的更多相关文章

  1. Delphi中文本文件的操作

    Delphi中文本文件的操作 相关知识内容: 在对文本文件进行任何处理之前,首先要打开此文本文件.声明变量:通过此变量可以来引用一个文本文件. 打开一个文件需要两步:首先是 AssignFile(), ...

  2. delphi中move函数的正确理解(const和var一样,都是传地址,所以Move是传地址,而恰恰不是传值)太精彩了 good

    我们能看到以下代码var pSource,pDest:PChar;     len: integer;.......................//一些代码Move(pSource,pDest,l ...

  3. Delphi中的dll操作

    利用delphi dll wizard进行dll的编写. 创建:保存时改dll名称 library test2; uses SysUtils, Classes, forms, dialogs; {$R ...

  4. delphi中ini 文件操作记要(1): 使用 TIniFile

    unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms ...

  5. Delphi中那些容易混淆的基础(@、^、Addr、Pointer,Move、CopyMemory,GetMem和FreeMem、GetMemory和FreeMemory、New和Dispose、StrAlloc和StrDispose、AllocMem)

    @.^.Addr.Pointer Delphi(Pascal)中有几个特殊的符号,如@.^等,弄清楚这些符号的运行,首先要明白Delphi指针的一些基础知识:指针,是一个无符号整数(unsigned ...

  6. Delphi中那些容易混淆的基础

    @.^.Addr.Pointer Delphi(Pascal)中有几个特殊的符号,如@.^等,弄清楚这些符号的运行,首先要明白Delphi指针的一些基础知识:指针,是一个无符号整数(unsigned ...

  7. Delphi中String类型原理介绍

    Delphi中字符串的操作很简单,但幕后情况却相当复杂.Pascal传统的字符串操作方法与Windows不同,Windows吸取了C语言的字符串操作方法.32位Delphi中增加了长字符串类型,该类型 ...

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

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

  9. Delphi中的操作二进制文件的两个重要函数

    Delphi中的操作二进制文件的两个重要函数 对于通过Byte数组进行文件操作的,在FTP中经常会使用到,我也是在Delphi调用Web Service进行文件的上传和下载时找到这两个函数的,挺好用的 ...

随机推荐

  1. Linq 动态组合排序(Lambda)

    最近有个项目需要做一个排班的功能,需要对排班的数据按不同的规则进行排序:因为排序规则是动态变化的,所以不太适合放到数据库中(临时表)中处理: 所以考虑使用Linq的排序方式(按不同的条件判断条件组合排 ...

  2. clipboard.js一个可以在移动端一键复制的插件

    网址:https://clipboardjs.com/ 使用方法: 1.引入js <script src="dist/clipboard.min.js"></sc ...

  3. PeopleSoft如何查找jar包冲突

    PeopleSoft要查找jar包冲突问题,不像maven可以打印出所有依赖,但既然是在JVM上运行,就可以启用JVM参数 路经:%ps_cfg_home%\appserv\Domain 文件名:ps ...

  4. mobile_轮播图_transform 版本_transform 读写二合一

    轮播图_transform 版本 关键点: 2D 变换 transform 不会改变 元素 在 文档流 中的位置 定位 position 会改变 元素 在 文档流 中的位置 语句解析太快,使用 set ...

  5. Node.js_简介及其 npm 包管理器基本使用_npm_cnpm_yarn_cyarn

    Node.js 既是语言也是平台,跳过了 Apache.Nginx 等 HTTP 服务器,直接面向前端开发 JavaScript 是由 ECMAScript.文档对象模型(DOM)和浏览器对象模型(B ...

  6. ArcGIS AddIn 批量设置栅格图层背景色为透明

    protected override void OnClick() { // // TODO: Sample code showing how to access button host // Arc ...

  7. .NET Core开发日志——GraphQL

    GraphQL是什么 GraphQL既是一种用于API的查询语言也是一种通过使用对应数据的类型系统,执行数据查询的服务端运行时.GraphQL没有局限于任何数据库或存储引擎,而是通过既有代码及数据获得 ...

  8. 数学和物理太难?这些 GIF 让你秒懂抽象概念

    把科学带回家,给孩子最好的科学教育 觉得数学和物理很抽象很难懂吗?今天我们来分享一组数学和物理相关的动图,让你秒懂抽象概念. 数学动图 △ 从椭圆的一个焦点射出的光线总会通过另一个焦点. △ 真人版. ...

  9. 你应当如何学习C++以及编程(细节是必要的,但不是重要的,把时间用在集中精力去解决问题,而不是学习新技术,那样练不成高手。在实践中提高才是最重要的。最最重要的内功还是长期学习所磨练出来的自学能力)good

    最近在学习Qt但由于没有C++的基础,感觉学的很吃力.看到pongba的这篇文章感觉不错就弄过来了, 原文地址:http://blog.csdn.net/qter_wd007/article/deta ...

  10. 2019-oo-第一单元总结

    第一单元总结 ——表达式的求导 一.思路综述 二.代码分析 结构分析 bug分析 风格分析 三.Hack Hack Hack 四.难点总结 五.感想 一.思路综述 第一次作业 输入处理时,一项一项地用 ...