知识大全 好用的Delphi字符串

Posted 指针

篇首语:时代各有不同,青春一脉相承。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 好用的Delphi字符串相关的知识,希望对你有一定的参考价值。

好用的Delphi字符串  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

   一 各种字符串

  字符串是Object Pascal所有数据类型中最有用的类型 许多函数以字符串为传递参数 由于在Delphi中字符串的定义和使用有各种方式 包括Pascal中典型的字符串(String) Delphi支持的长字符串(ANSIString) 类似于C语言的字符数组(Array of Char) 指向字符的指针(Pchar)等 下面的文章就跟谈谈这些类型在定义和应用中的区别和注意事项

   . 传统的Pascal字符串

  在Pascal中 典型的字符串是一定长度的字符序列 每一字符串有一设定的长度(缺省值为 ) 下面是一个例子 Var Address:String; Code:String[ ]; Address是一长度为 的字符串 Code的最大长度为 传统的Pascal字符串长度不能超过 可以用字符串连接操作 + 把字符串连接在一起 Result:=String +String ;

    . Delphi中的长字符串

  Delphi除了支持传统的Pascal短字符串还支持长字符串 长字符称为ANSIString 长字符串动态分配内存 即用字符串时才分配字符串所需内存 所以其长度不受限制 在Delphi中你如果用String :String作类型说明 则String 既可能是短字符串也可能是长字符串 这取决于编译器中$H开关的设置 默认值为$H+ 代表ANSI长字符串 VCL中的组件使用ANSI长字符串 长字符串以null结束 这就说明长字符串与C语言中的以null结束的字符串完全兼容 可以通过SetLength函数设置字符串的最大长度 SetLength(String );用TrimLeft TrimRight和Trim函数分别来消除字符串开头 结尾和首尾的空白区

   . 类似于C的字符数组

  可以用以 为起点的数组来存储以null结束的字符串 如下定义 Var Name:Array[ ] of Char;

   . Pchar指针   

  如果Delphi中的Exended Syntax 已经设置(缺省值) 以 为起点的字符数组就和指向字符的指针Pchar完全兼容 因为以 为起点的字符数组名即指向该字符数组首字符的指针 可以将字符串直接付值给Pchar指针 例如 var P: PChar; begin P := Hello world ; end;   

  这样P就指向存储字符串 Hello world 并以null结束的一块内存 许多Windows的应用程序接口API函数要求用Pchar类型作参数 Pchar指针在使用是首先用GetMem(var P: Pointer; Size: Integer)函数申请分配内存 程序结束时用FreeMem(var P: Pointer[; Size: Integer])函数释放内存 例如 Var WinDir SysDir:Pchar; Begin GetMem(WinDir );为指针分配内存 GetWindowsDirectory(WinDir );将Windows安装目录放至WinDir ShowMessage( Windows directory is +WinDir);显示结果 End;

  二 字符串转换   

  以上介绍了Delphi中的四类字符串的定义和使用 由于各类函数对字符串参数类型要求不一 这就需要进行字符串类型转换

   . 可以用StrPas将以null结束的字符串转换为Pascal短字符串 StrpCopy则完成相反的转换

   . 因为长字符串以null结束 所以可以用强制类型转换将长字符串转换成Pchar类型 用法是 Pchar(s) s是一个长字符串 强制类型转换返回一个指向长字符串首字符的指针 并且所指字符串以null 结束 例如 Var Caption Message:string; Caption:= Hello World! ; Mssage:= This is a test of long string ; MessageBox( Pchar(Message) Pchar(Caption) MB_OK);

cha138/Article/program/Delphi/201311/24856

相关参考

知识大全 Delphi字符串列表及应用(三)

Delphi字符串列表及应用(三)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  往字符串列表中

知识大全 Delphi字符串列表及应用(四)

Delphi字符串列表及应用(四)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  把图像加入字符

知识大全 Delphi字符串列表及应用(二)

Delphi字符串列表及应用(二)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  重复操作列表中

知识大全 delphi 的分离字符串函数 split

  unitUnit;  interface  uses   WindowsMessagesSysUtilsVariantsClassesGraphicsControlsForms 

知识大全 Delphi把流中的字符串转换为UTF格式

Delphi把流中的字符串转换为UTF格式  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  本例效

知识大全 delphi编程实现在Word插入字符

delphi编程实现在Word插入字符  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! &

知识大全 Delphi面向对象的编程方法(六)

Delphi面向对象的编程方法(六)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  字符串类型 

知识大全 字符串的个数问题[1]

Delphi开发技巧:字符串的个数问题[1]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!&nbs

知识大全 字符串的个数问题[3]

Delphi开发技巧:字符串的个数问题[3]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!&nbs

知识大全 字符串的个数问题[2]

Delphi开发技巧:字符串的个数问题[2]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!&nbs