网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > Delphi
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
本月文章推荐
.OOP程序设计实践.
.两个delphi下遍历指定目录下指定.
.一个DELPHI的MemoryManager.
.Delphi下常用数学运算函数.
.用clientsocket发送http头请求.
.绑架窗体之Delphi版.
.将小写数字金额转成大写金额.
.用DLL方式封装MDI子窗体.
.计算出用字符串表示的数学表达式.
.检测你的程序是否运行在虚拟机(V.
.利用Delphi编写Windows外壳扩展.
.如何用Tprinter设计BCB操作数据库.
.netmessagebuffersend示例.
.设计模式、用Delphi描述-->Visit.
.怎样屏蔽或打开windows里的快捷键.
.最好的数据导出组件SMExport.
.Delphi在MDI窗口中显示图形控件及.
.实现QQ窗体的缩入伸出功能.
.FindWindowEX的一个应用实例.
.由图像的灰度化看基本图像处理(3).

Delphi中的字符串

发表日期:2006-2-4


Delphi中的字符串

——摘自网络

一:各种字符串 
  字符串是Object Pascal所有数据类型中最有用的类型。许多函数以字符串为传递参数。由于在Delphi中字符串的定义和使用有各种方式,包括Pascal中典型的字符串(String),Delphi支持的长字符串(ANSIString),类似于C语言的字符数组(Array of Char),指向字符的指针(Pchar)等。下面的文章就跟谈谈这些类型在定义和应用中的区别和注意事项。 
1. 传统的Pascal字符串 
  在Pascal中,典型的字符串是一定长度的字符序列。每一字符串有一设定的长度(缺省值为255),下面是一个例子: 
Var 
Address:String; 
Code:String[50]; 
Address是一长度为255的字符串,Code的最大长度为50。 
传统的Pascal字符串长度不能超过255。 
可以用字符串连接操作"+"把字符串连接在一起: 
Result:=String1+String2; 
2. Delphi中的长字符串 
  Delphi除了支持传统的Pascal短字符串还支持长字符串。长字符称为ANSIString。长字符串动态分配内存,即用字符串时才分配字符串所需内存,所以其长度不受限制。在Delphi中你如果用String1:String作类型说明,则String1既可能是短字符串也可能是长字符串,这取决于编译器中$H开关的设置。默认值为$H+,代表ANSI长字符串,VCL中的组件使用ANSI长字符串。长字符串以null结束,这就说明长字符串与C语言中的以null结束的字符串完全兼容。 
可以通过SetLength函数设置字符串的最大长度: 
SetLength(String1,100);用TrimLeft,TrimRight和Trim函数分别来消除字符串开头,结尾和首尾的空白区。 
3. 类似于C的字符数组 
  可以用以0为起点的数组来存储以null结束的字符串。如下定义: 
Var 
Name:Array[0..50] of Char; 
4. Pchar指针 
  如果Delphi中的Exended Syntax 已经设置(缺省值),以0为起点的字符数组就和指向字符的指针Pchar完全兼容,因为以0为起点的字符数组名即指向该字符数组首字符的指针。可以将字符串直接付值给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,256);{为指针分配内存} 
GetWindowsDirectory(WinDir,128);{将Windows安装目录放至WinDir} 
ShowMessage('Windows directory is'+WinDir);{显示结果} 
End; 
二:字符串转换 
  以上介绍了Delphi中的四类字符串的定义和使用。由于各类函数对字符串参数类型要求不一,这就需要进行字符串类型转换。 
1. 可以用StrPas将以null结束的字符串转换为Pascal短字符串。StrpCopy则完成相反的转换。 
2. 因为长字符串以null结束,所以可以用强制类型转换将长字符串转换成Pchar类型。用法是:Pchar(s),s是一个长字符串。强制类型转换返回一个指向长字符串首字符的指针,并且所指字符串以null 结束。例如: 
Var 
Caption,Message:string; 
Caption:='Hello World!'; 
Mssage:='This is a test of long string'; 
MessageBox(0,Pchar(Message),Pchar(Caption),MB_OK); 
小结:在使用Delphi中的字符串时,要时刻清楚该字符串的类型,以免引起混淆。在理解字符串时要把字符串与指针,内存分配联系起来,加强理解。 

上一篇:Fastreport3.14的中文PDF输出 人气:4645
下一篇:使用类方法控制实例的唯一性 人气:4407
浏览全部Delphi的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐