Delphi 各類功能函式總結

語言: CN / TW / HK

theme: smartblue

01. 自增函式 Inc

原型:procedure Inc(var X);,位於 System 單元。

功能:第一種用法,就是自己加一。

Delphi var i: Integer; begin i:= 100; Inc(i); //這裡,i的值就成了 101 end;

原型:procedure Inc(var X; N: Longint);,位於 System 單元。

功能:第二種用法,就是加上一個指定的值。

Delphi var i: Integer; begin i:= 100; Inc(i, 100); //這裡,i的值就成了 200 end;

02. 自減函式 Dec

原型:procedure Dec(var X);,位於 System 單元。

功能:第一種用法,就是自己減一。

Delphi var i: Integer; begin i:= 100; Dec(i); //這裡,i的值就成了 99 end;

原型:procedure Dec(var X; N: Longint);,位於 System 單元。

功能:第二種用法,就是減去一個指定的值。

Delphi var i: Integer; begin i:= 100; Inc(i, 30); //這裡,i的值就成了 70 end;

03. 返回所佔位元組數 SizeOf

原型:function SizeOf(X): Integer;,位於 System 單元。

功能:它可以返回一個變數、或型別所佔的位元組數

```Delphi var i, n: Integer; s: string; begin i:= 10; n:= SizeOf(i); //這裡,n的值為 4

s:= 'Hello Delphi'; n:= SizeOf(s); //這裡,n的值為4,這裡有疑問,字串不管長度多少,都返回 4

n:= SizeOf(Integer); //這裡,n的值為 4 n:= SizeOf(Double); //這裡,n的值為 8 n:= SizeOf(String); //這裡,n的值為 4 end; ```

04. 返回元素的個數 Length

原型:function Length(S): Integer;,位於 System 單元。

功能:它可以返回字串中的字元個數、或陣列中的元素個數

```Delphi var s: string; arr: array [0..5] of Integer; i, n: Integer; begin s:= '123456789'; n:= Length(s); //這裡,n的值為 9

for i:= 0 to 5 do begin arr[i]:= i; end; n:= Length(arr); //這裡,n的值為 6 end; ```

05. 給連續的位元組賦指定的值 FillChar

原型:procedure FillChar(var X; Count: Integer; Value: Byte);,位於 System 單元。

功能:它可以給一組連續的位元組賦予相同的指定值,通常用來給變數賦初值。

Delphi var arr: array [0..5] of Byte; begin //陣列除了可以用for迴圈單個元素依次初始化,也可以用FillChar全部初始化為同樣的值 FillChar(arr, SizeOf(arr), 1); //表示給變數arr,從起始地址開始的連續6個位元組,都賦值為1 end;

06. 整型轉字串 IntToStr

原型:位於 SysUtils 單元

function IntToStr(Value: Integer): string; overload;

function IntToStr(Value: Int64): string; overload;

功能:將一個整型數,以字串形式返回。

補充:Integer 表示有符號32位整數,Int64 表示有符號64位整數,$ 表示十六進位制數。

Delphi var s: string; begin s:= IntToStr(100); //這裡,s的值為 100 s:= IntToStr(-100); //這裡,s的值為 -100 s:= IntToStr($100); //這裡,s的值為 256 s:= IntToStr(-$100); //這裡,s的值為 -256 end;

07. 字串轉整型 StrToInt

原型:位於 SysUtils 單元

function StrToInt(const S: string): Integer;

function StrToInt64(const S: string): Int64;

功能:將一個整數形式的字串,以整數形式返回。

Delphi var i: Integer; begin i:= StrToInt('64'); //返回 64 i:= StrToInt('-64'); //返回 -64 i:= StrToInt('$40'); //返回 64 i:= StrToInt('-$40'); //返回 -64 end;

07. 整型轉十六進位制字串 IntToHex

原型:位於 SysUtils 單元

function IntToHex(Value: Integer; Digits: Integer): string; overload;

function IntToHex(Value: Int64; Digits: Integer): string; overload;

功能:將一個整型數轉成十六進位制數,以字串形式返回,Digits 表示字串長度,位數不足前面補零。

補充:Integer 表示有符號32位整數,Int64 表示有符號64位整數,$ 表示十六進位制數。

```Delphi var s: string; begin s:= IntToHex(100, 1); //十進位制轉十六進位制,這裡s的值為 64 s:= IntToHex(100, 2); //十進位制轉十六進位制,這裡s的值為 64 s:= IntToHex(100, 4); //十進位制轉十六進位制,這裡s的值為 0064

s:= IntToHex(-100, 1); //十進位制轉十六進位制,這裡s的值為 FFFFFF9C s:= IntToHex(-100, 10); //十進位制轉十六進位制,這裡s的值為 00FFFFFF9C

s:= IntToHex($100, 1); //十六進位制轉十六進位制,這裡s的值為 100 s:= IntToHex($100, 2); //十六進位制轉十六進位制,這裡s的值為 100 s:= IntToHex($100, 4); //十六進位制轉十六進位制,這裡s的值為 0100

s:= IntToHex(-$100, 1); //十六進位制轉十六進位制,這裡s的值為 FFFFFF00 s:= IntToHex(-$100, 10); //十六進位制轉十六進位制,這裡s的值為 00FFFFFF00 end; ```

08. 返回ASCII碼的對應數值 Ord

原型:function Ord(X);,位於 System 單元。

功能:返回一個有序型別資料的序號,常用於獲取 ASCII 碼的十進位制數值。

補充:Delphi中的數值預設為十進位制,# 表示十進位制數,$ 表示十六進位制數。

```Delphi Type A = (Mon, Tue, Wed, Thr, Fri, Sat, Sun); //列舉型別

var i: Integer; begin i:= Ord('A'); //返回 65 i:= Ord(65); //返回 65 i:= Ord(#65); //返回 65,儘量不要使用 # 符號,因為很多系統函式不支援這種寫法 i:= Ord($41); //返回 65

i:= Ord(Mon); //返回 0 i:= Ord(Tue); //返回 1 end; ```

09. 返回數值對應的ASCII字元 Chr

原型:function Chr(X: Byte): Char;,位於 System 單元。

功能:返回一個 ASCII 碼值對應的字元。

Delphi var c: Char; begin c:= Chr(65); //返回 A,不能使用 Chr(#65) c:= Chr($41); //返回 A end;

10. 取整函式 Trunc

原型:function Trunc(X: Extended): Int64;,位於 System 單元。

功能:返回 X 的整數部分。

補充:Extended 是一個超大的浮點數,佔 10 個位元組。

Delphi var i: Int64; //不超過取值範圍,Integer也行 begin i:= Trunc(1.40); //返回 1 i:= Trunc(1.50); //返回 1 i:= Trunc(-1.40); //返回 -1 i:= Trunc(-1.50); //返回 -1,似乎十六進位制符號 $ 不能用於浮點數 end;