国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Delphi > 正文

Delphi中的字符串

2019-11-18 17:58:25
字體:
供稿:網(wǎng)友

Delphi中的字符串

——摘自網(wǎng)絡(luò)

一:各種字符串 
  字符串是Object Pascal所有數(shù)據(jù)類型中最有用的類型。許多函數(shù)以字符串為傳遞參數(shù)。由于在Delphi中字符串的定義和使用有各種方式,包括Pascal中典型的字符串(String),Delphi支持的長字符串(ANSIString),類似于C語言的字符數(shù)組(Array of Char),指向字符的指針(Pchar)等。下面的文章就跟談?wù)勥@些類型在定義和應(yīng)用中的區(qū)別和注意事項。 
1. 傳統(tǒng)的Pascal字符串 
  在Pascal中,典型的字符串是一定長度的字符序列。每一字符串有一設(shè)定的長度(缺省值為255),下面是一個例子: 
Var 
Address:String; 
Code:String[50]; 
Address是一長度為255的字符串,Code的最大長度為50。 
傳統(tǒng)的Pascal字符串長度不能超過255。 
可以用字符串連接操作"+"把字符串連接在一起: 
Result:=String1+String2; 
2. Delphi中的長字符串 
  Delphi除了支持傳統(tǒng)的Pascal短字符串還支持長字符串。長字符稱為ANSIString。長字符串動態(tài)分配內(nèi)存,即用字符串時才分配字符串所需內(nèi)存,所以其長度不受限制。在Delphi中你如果用String1:String作類型說明,則String1既可能是短字符串也可能是長字符串,這取決于編譯器中$H開關(guān)的設(shè)置。默認值為$H+,代表ANSI長字符串,VCL中的組件使用ANSI長字符串。長字符串以null結(jié)束,這就說明長字符串與C語言中的以null結(jié)束的字符串完全兼容。 
可以通過SetLength函數(shù)設(shè)置字符串的最大長度: 
SetLength(String1,100);用TrimLeft,TrimRight和Trim函數(shù)分別來消除字符串開頭,結(jié)尾和首尾的空白區(qū)。 
3. 類似于C的字符數(shù)組 
  可以用以0為起點的數(shù)組來存儲以null結(jié)束的字符串。如下定義: 
Var 
Name:Array[0..50] of Char; 
4. Pchar指針 
  如果Delphi中的Exended Syntax 已經(jīng)設(shè)置(缺省值),以0為起點的字符數(shù)組就和指向字符的指針Pchar完全兼容,因為以0為起點的字符數(shù)組名即指向該字符數(shù)組首字符的指針。可以將字符串直接付值給Pchar指針。例如: 
var 
P: PChar; 
begin 
P := 'Hello world'; 
end; 
  這樣P就指向存儲字符串'Hello world'并以null結(jié)束的一塊內(nèi)存。 
許多Windows的應(yīng)用程序接口API函數(shù)要求用Pchar類型作參數(shù)。Pchar指針在使用是首先用GetMem(var P: Pointer; Size: Integer)函數(shù)申請分配內(nèi)存,程序結(jié)束時用FreeMem(var P: Pointer[; Size: Integer])函數(shù)釋放內(nèi)存。例如: 
Var WinDir,SysDir:Pchar; 
Begin 
GetMem(WinDir,256);{為指針分配內(nèi)存} 
GetWindowsDirectory(WinDir,128);{將Windows安裝目錄放至WinDir} 
ShowMessage('Windows directory is'+WinDir);{顯示結(jié)果} 
End; 
二:字符串轉(zhuǎn)換 
  以上介紹了Delphi中的四類字符串的定義和使用。由于各類函數(shù)對字符串參數(shù)類型要求不一,這就需要進行字符串類型轉(zhuǎn)換。 
1. 可以用StrPas將以null結(jié)束的字符串轉(zhuǎn)換為Pascal短字符串。StrpCopy則完成相反的轉(zhuǎn)換。 
2. 因為長字符串以null結(jié)束,所以可以用強制類型轉(zhuǎn)換將長字符串轉(zhuǎn)換成Pchar類型。用法是:Pchar(s),s是一個長字符串。強制類型轉(zhuǎn)換返回一個指向長字符串首字符的指針,并且所指字符串以null 結(jié)束。例如: 
Var 
Caption,Message:string; 
Caption:='Hello World!'; 
Mssage:='This is a test of long string'; 
MessageBox(0,Pchar(Message),Pchar(Caption),MB_OK); 
小結(jié):在使用Delphi中的字符串時,要時刻清楚該字符串的類型,以免引起混淆。在理解字符串時要把字符串與指針,內(nèi)存分配聯(lián)系起來,加強理解。 


上一篇:巧用Delphi制作濺射屏幕

下一篇:[Delphi]一個解析FTP地址的小函數(shù)

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
學習交流
熱門圖片

新聞熱點

疑難解答

圖片精選

網(wǎng)友關(guān)注

主站蜘蛛池模板: 东海县| 三门峡市| 荆州市| 洪洞县| 汉阴县| 交口县| 华安县| 百色市| 屯昌县| 腾冲县| 江陵县| 沧州市| 方山县| 三亚市| 乌兰浩特市| 双柏县| 湖北省| 浮梁县| 汾西县| 富宁县| 盘山县| 平果县| 拉萨市| 手游| 扬中市| 额敏县| 廊坊市| 抚顺市| 四平市| 应用必备| 栾城县| 阳泉市| 广东省| 鸡东县| 鄯善县| 增城市| 新兴县| 乐都县| 方山县| 康乐县| 宾川县|