字串转字节数组

一、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. CSS(四)

    css元素溢出 当子元素的尺寸超过父元素的尺寸时,需要设置父元素显示溢出的子元素的方式,设置的方法是通过overflow属性来设置. overflow的设置项: 1.visible 默认值.内容不会被 ...

  2. ubuntu中如何安装python3.6

    此处使用命令行方式来安装Python3.6: sudo wget https://www.python.org/ftp/python/3.6.0/Python-3.6.0.tar.xz sudo ta ...

  3. img标签与span一起使用不在同一条线上

    布局时 img标签与span标签在同一行是不能垂直,解决办法:在 img标签添加一个 vertical-align:middle; 即 <!-- img与span的文字与图片保持同一条水平线 在 ...

  4. C# 与Sql server 获取数据和执行命令

    C#数据库命封装在 System.Data.SqlClient 之中: 从使用的数据库中获取连接串connectionstring:"server=xx.xxx.xx.xx,xxxx: da ...

  5. jquery各版本

    各版本下载: https://www.jb51.net/zt/jquerydown.htm

  6. java常用工具包

    1.国外 org.apache.commons.lang3 http://commons.apache.org/proper/commons-lang/javadocs/api-3.8.1/index ...

  7. Django登录与注销

    一:Django中自带着登录,验证功能不用自己再去写登录功能. 1.从相应模块导入组件功能 from django.contrib.auth import authenticate,login 2.从 ...

  8. mysql 数据库的数据类型

  9. 2PC/3PC/Paxos

    在分布式系统中,一个事务可能涉及到集群中的多个节点.单个节点很容易知道自己执行的事务成功还是失败,但因为网络不可靠难以了解其它节点的执行状态(可能事务执行成功但网络访问超时). 若部分节点事务执行失败 ...

  10. python生成excel测试数据

    在功能测试时,经常会测到excel文件导入导出的功能,导入与导出时,需要测试系统单次导入大批量数据时是否正常, 如果系统承受不起太大的数据导入,则需要开发限制单次导入的数量,以防止系统服务异常.大量的 ...