Delphi 7.0常用函数速查手册
| 函數由一句或多句代碼組成,可以實現某個特定的功能。使用函數可以使代碼更加易讀、易懂,加快編程速度及減少重復代碼。過程與函數類似,過程與函數最重要的區別在于,過程沒有返回值,而函數能有返回值。 在Delphi 7.0中,已為我們定義好了非常多的函數,大致分類有6種:數據類型轉換函數、字符串、數組操作函數、文件、磁盤操作函數、內存、指針操作函數、數學運算函數、日期函數。 在Delphi中調用函數,一般情況下可以直接使用函數即可,但由于有一些函數未包含在Uses中列出的單元中(默認單元有Windows,Messages,SysUtils,Variants,Classes,Graphics, Controls,Forms,Dialogs;),所以需要我們手動添加單元。比如,MidStr函數就未包含在這些單元中,MidStr所屬單元在StrUtils中,因此我們將StrUtils添加Uses中即可。 在本手冊中,凡是未包含在默認列出的單元中的函數,都標明了其所屬的單元,使用時應當注意。 一、數據類型轉換函數在我們編寫程序當中,根據不同情況,會使用到多種數據類型。當要對不同的類型進行操作時,必須要將不同的類型轉換成同樣的類型。因此熟練地掌握數據類型的轉換是非常重要的。 1.FloatToStr功能說明:該函數用于將“浮點型”轉換成“字符型”。 參考實例: Edit1.Text := FloatToStr(1.981); 2.IntToStr功能說明:該函數用于將“整數型”轉換成“字符型”。 參考實例: S := IntToStr(10);(注:S為String類型變量。) 3.IntToHex功能說明:該函數用于將“十進制”轉換成“十進制”。該函數有二個參數。第一個參數為要轉換的十進制數據,第二個參數是指定使用多少位來顯示十六進制數據。 參考實例: Edit1.Text := IntToHex('100', 2); 執行結果,Edit1.Text等于64。 注意:Delphi沒有提供專門的“十六進制”轉換為“十進制”的函數。使用StrToInt函數可以實現這個功能。具體代碼是:I := StrToInt('S\' + '64'); 這時I等于100。加上一個'S\'即可將“十六進制”轉換為“十進制”。 4.StrToInt功能說明:該函數用于將“字符型”轉換成“整數型”。 參考實例: I := StrToInt('100'); 注意:不能轉換如 StrToInt('ab')或StrToInt('好')這樣的類型,因為他們并不存在數字型。 5.StrToFloat功能說明:該函數用于將“字符型”轉換成“浮點型”。 參考實例: N := StrToFloat(Edit1.Text); 注意:Edit1.Text中的內容為1.981(凡在Edit控件中顯示的文本均為字符串)。N為Double類型,用于保存轉換后的浮點型數據。 二、字符串、數組操作函數對字符串及數組的操作,是每個程序員必須要掌握的。熟練的使用這些函數,在編程時能更加得心應手。 1.Copy功能說明:該函數用于從字符串中復制指定范圍中的字符。該函數有3個參數。第一個參數是數據源(即被復制的字符串),第二個參數是從字符串某一處開始復制,第三個參數是要復制字符串的長度(即個數)。最后函數返回一個新的字符串(即是我們指定要復制的字符串內容)。 參考實例: var S: String; MyStr: String; // 保存新的字符串 begin S := 'I Love China!'; //下面將獲取I Love China中的“Love”字符串。 MyStr := Copy(S, 3, 4); end; 執行結果,MyStr等于“Love”,“Love”字符串在“I Love China!”中第3個位置開始,所以第二個參數為3,“Love”一共有4個字符,所以第三個參數為4。 2.Concat功能說明:連接兩個或多個字符串為一個字符串。 參考實例: var S1, S2: String; begin S1 := Concat('A', 'B'); // 連接兩個字符串,S1變量等于AB。 S2 := Concat('Borland', ' Delphi', ' 7.0'); // 連接三個字符,S2變量等于Borland Delphi 7.0。 end; 3.Delete功能說明:刪除字符串中指定的字符串。該函數有三個參數。第一個參數為要進行處理的字符串,第二個參數為從何處開始刪除,第三個參數為刪除的字符個數。 參考實例: var S: String; begin S := 'I Like Reading CPCW.'; // 下面的代碼將刪除S變量中的“C”字符。 Delete(S, 16, 1); end; 此時S變量則是I Like Reading PCW.(“C”已經不存在了)。 4.High功能說明:返回數組下標的最大值。 參考實例: var arrText: array[0..9] of Char; i: Integer; begin i := High(arrText); // i的值則為9 end; 5.Insert功能說明:插入一個字符(串)。該函數有三個參數。第一個參數為要插入的字符(串),第二個參數為被插入字符串(源字符串),第三個參數為從何處插入。 參考實例: var S: String; begin S := 'Wat is your name?'; // 上面句子中的What單詞查一個“h”字符,下面使用Insert函數將h添加進去。 Insert('h', S, 2); // 將“h”從第2位處插入。 end; 6.LeftStr(所在單元:StrUtils)功能說明:返回字符串左邊指定個數的新字符(串)。該函數有兩個參數。第一個參數為完整的字符串,第二個參數為指定個數。 參考實例: var S, A: String; begin S := 'MSN Messenger'; A := LeftStr(S, 3); // 從最左邊開始,獲取左邊的三個字符。因此A變量則等于MSN。 end; 7.Length功能說明:該函數用于統計指定字符串的長度(即個數)。 參考實例: var nLen1, nLen2: Integer; // 用于保存字符串長度 begin nLen1 := Length('CPCW'); nLen2 := Length('電腦報'); end; 執行結果,nLen1等于4,nLen2等于6。由于一個漢字相當于兩個字符的長度,所以3個漢字的長度為6。 8.Low功能說明:返回數組下標的最小值。 參考實例: var arrText: array[1..9] of Char; i: Integer; begin i:= High(arrText); // i的值則為1 end; 9.LowerCase功能說明:將字符(串)中的英文字符轉換為小寫。 參考實例: var S, A: String; begin S := 'ABC'; A := UpperCase(S); // 經過UpperCase函數轉換后,A則等于abc。 end; 10.MidStr(所在單元:StrUtils)功能說明:返回指定范圍內的字符串。該函數有三個參數。第一個參數為源字符串,第二個參數為起點,第三個參數為結束點。通過第二、第三個參數則可指定要復制字符串的范圍。 Copy函數與此函數類似。MidStr主要用于處理含有中文字符的字符串。 參考實例: var S: String; H: String; begin S := MidStr('China', 1, 2); // S變量為Ch H := MidStr('電腦報', 1, 1); // H變量為“電”。如果使用Copy函數,則應是H := Copy('電腦報, 1, 2),否則返回的將不是“電”字。因此在使用操作含有中文的字符串時,最好使用MidStr。 end; 11.Pos功能說明:查找字符(串)所在位置。該函數有二個參數。第一個參數為要查找的字符(串),第二個參數為被查找字符(串)。 參考實例: var nPos: Integer; // 用于保存查找的字符所在位置 begin nPos := Pos('Like', 'I Like Reading!'); end; 此時nPos等于3。如果沒有查找到,則nPos為0。 注意:Pos函數在查找時是要區分字符大小的。如果要實現不區分大小,那么需要使用UpperCase或LowerCase函數將兩個參數的字符(串)轉換為“大寫”或“小寫”再進行查找。 另外還有一個查找字符(串)的函數----AnsiPos,該函數的使用方法與Pos函數完全一樣。當你查找的是漢字時,最好使用AnsiPos函數。 12.RightStr(所在單元:StrUtils)功能說明:返回字符串右邊指定個數的新字符(串)。該函數有兩個參數。第一個參數為完整的字符串,第二個參數為指定個數。 參考實例: var S, A: String; begin S := 'MSN Messenger'; A := RightStr(S, 3); // 從最右邊開始,獲取右邊的三個字符。因此A變量則等于ger。 end; 13.SetLength功能說明:設置字符串或動態數組長度。該函數有兩個參數。第一個參數為要設置的字符串變量或動態數組變量,第二個參數為指定的長度,其取值范圍在0到255之間。 參考實例: var S: String; arrText: array of Char; // 定義一個動態數組 begin SetLength(S, 10); // 當設置后,S變量只能賦值長度為10的字符串。 SetLength(arrText, 10); // 只有使用SetLength為動態數組分配內存空間后才能使用動態數組。這句代碼的作用相當于arrText: array[0..9] of Char end; 14.StrPCopy功能說明:將字符串復制到字符數組中。該函數有兩個參數。第一個參數為“目標數組”,第二個參數為“字符串”。 參考實例: var arrChar: array[0..255] of Char; // 這里聲明了長度為256的Char型數組 begin StrPCopy(arrChar, 'Come on, baby!'); end; 15.Trim功能說明:刪除字符串左右兩邊的空格(無論左右兩邊有多少個空格均被全部刪除)。 參考實例: var S: String; begin S := ' Delphi 7.0 '; S := Trim(S); end; 16.TrimLeft功能說明:刪除字符串左邊的空格(無論左邊有多少個空格均被全部刪除)。 參考實例: S := TrimLeft(' Delphi'); 17.TrimRight功能說明:刪除字符串左邊的空格(無論左邊有多少個空格均被全部刪除)。 參考實例: S := TrimRight('Delphi '); 18.UpperCase功能說明:將字符(串)中的英文字符轉換為大寫。 參考實例: var S, A: String; begin S := 'abc'; A := UpperCase(S); // 經過UpperCase函數轉換后,A則等于ABC。 end; 三、文件、磁盤操作函數軟件大多都要對文件、磁盤進行操作。熟悉掌握這些函數可以幫助你輕松實現創建、刪除、保存文件等功能。 1.Append功能說明:追加內容到文件中。文件必須要存在。 參考實例: var S: String; F: TextFile; begin S := 'This is a book.'; AssignFile(F, 'C:\MyFile.txt'); // 將C:\MyFile.txt文件與F變量建立連接,后面可以使用F變量對文件進行操作。 Append(F); // 以追加的方式打開文件 Writeln(F, S); // 將S變量中的內容追加到文本尾后。 CloseFile(F); // 關閉文件 end; 2.AssignFile功能說明:與指定的文件建立連接。 參考實例: var F: TextFile; // 聲明文本文件類型變量 begin AssignFile(F, 'C:\MyFile.txt'); // 將C:\MyFile.txt文件與F變量建立連接,后面可以使用F變量對文件進行操作。 end; 3.ChDir功能說明:改變當前目錄(文件夾)。 參考實例: var sDir: String; begin sDir := 'C:\Windows'; ChDir(sDir); // 此時,系統的當前目錄則為C:\Windows目錄。 end; 4.CloseFile功能說明:關閉文件。當對文件的操作完成后,應該使用CloseFile函數關閉打開的文件。 參考實例: var S: String; AllText: String; F: TextFile; begin AssignFile(F, 'C:\MyFile.txt'); // 將C:\MyFile.txt文件與F變量建立連接,后面可以使用F變量對文件進行操作。 Reset(F); // 打開文件 while not EOF(F) do begin // 使用While循環,一直判斷是否到了文件未尾 Readln(F, S); // 讀取一行文本 AllText := AllText + S; end; CloseFile(F); // 關閉文件 end; 5.DeleteFile功能說明:刪除指定的文件。該函數只有一個參數。此參數為欲刪除文件的完整路徑。如果刪除成功,則返回True。若刪除失敗、或文件不存在則返回False。 參考實例: var IsOK: Boolean; // 用于保存刪除狀態 begin IsOK := DeleteFile('C:\My Documents\Index.html'); // 函數執著后,將結果返回給IsOK變量。如果IsOK變量為True,則表示文件刪除成功。 if IsOK then ShowMessage('文件刪除成功!') else ShowMessage('文件刪除失敗!'); end; 6.DirectoryExists功能說明:檢測指定的文件夾否存在。如果存在則返回True,反之則為False。 參考實例: var IsExists: Boolean; begin IsExists := DirectoryExists ('C:\Windows'); if IsExists then ShowMessage('Windows文件夾存在!') else ShowMessage('Windows文件夾不存在!'); end; 7.DiskFree功能說明:獲取指定磁盤的剩余空間。該函數只有一個參數。該參數用于指定要獲取剩余空間的磁盤號。當參數為0時,表示獲取當前磁盤的剩余空間,1為A盤,2為B盤,以此類推。如果返回值為-1,表示指定的磁盤無效。 參考實例: var FreeSize: Int64; begin FreeSize := DiskFree(3); // 獲取C盤中的剩余空間。返回的值是以“字節”為單位的。 end; 8.DiskSize功能說明:獲取指定磁盤的空間。該函數只有一個參數。該參數用于指定要獲取磁盤空間的磁盤號。當參數為0時,表示獲取當前磁盤的空間,1為A盤,2為B盤,以此類推。如果返回值為-1,表示指定的磁盤無效。 參考實例: var DiskSize: Int64; begin DiskSize:= DiskSize(3); // 獲取C盤的空間。返回的值是以“字節”為單位的。 end; 9.EOF功能說明:判斷文件指針是否移動到了文件未尾。當EOF函數返回值為True時,則不可以使用Readln函數進行讀取文件了。 參考實例: var S: String; AllText: String; F: TextFile; begin AssignFile(F, 'C:\MyFile.txt'); // 將C:\MyFile.txt文件與F變量建立連接,后面可以使用F變量對文件進行操作。 Reset(F); // 打開文件 while not EOF(F) do begin // 使用While循環,一直判斷是否到了文件未尾 Readln(F, S); // 讀取一行文本 AllText := AllText + S; end; end; 10.Erase功能說明:刪除文件。 參考實例: var F: File; begin AssignFile(F, 'C:\MyFile.txt'); // 將C:\MyFile.txt文件與F變量建立連接,后面可以使用F變量對文件進行操作。 Reset(F); // 打開文件 CloseFile(F); // 關閉文件 Erase(F); // 刪除文件。在刪除文件之前必須先關閉文件。 end; 11.FileExists功能說明:檢測指定的文件否存在。如果存在則返回True,反之則為False。 參考實例: var IsExists: Boolean; begin IsExists := FileExists('C:\Test.txt'); if IsExists then ShowMessage('該文件存在!') else ShowMessage('該文件不存在!'); end; 12.FileSize功能說明:獲取文件大小。返回的結果是字節為單位。 參考實例: var F: file of Byte; nSize: Longint; begin AssignFile(F, 'C:\MyFile.txt'); // 將C:\MyFile.txt文件與F變量建立連接,后面可以使用F變量對文件進行操作。 Reset(F); // 打開文件 nSize := FileSize(F); // 獲取文件大小。 CloseFile(F); // 關閉文件 end; 13.ForceDirectories功能說明:創建新的子目錄。路徑中不存在的目錄將一同創建。 參考實例: ForceDirectories('C:\Flash\MyFolder'); // 如果Flash文件夾本身不存的話,那么將會先創建Flash文件夾,然后再創建MyFolder文件夾。 14.MkDir功能說明:創建一個新的子目錄(文件夾)。 參考實例: MkDir('C:\MyFolder'); // 在C盤根目錄中創建了一個名叫MyFolder的文件夾。 需要注意的是,如果在本身不存在的目錄中創建子目錄將會失敗。比如C盤根本不存在Flash文件夾,寫成MkDir('C:\Flash\MyFolder');這樣將不能成功創建MyFolder文件夾。 15.Reset功能說明:以只讀方式打開文件。 參考實例: var F: TextFile; // 聲明文本文件類型變量 begin AssignFile(F, 'C:\MyFile.txt'); // 將C:\MyFile.txt文件與F變量建立連接,后面可以使用F變量對文件進行操作。 Reset(F); // 打開文件 end; 16.Rewrite功能說明:以可寫方式打開文件。如果文件不存在,將會自動創建。使用該函數,將會覆蓋文件中的所有內容。 參考實例: var F: TextFile; // 聲明文本文件類型變量 begin AssignFile(F, 'C:\MyFile.txt'); // 將C:\MyFile.txt文件與F變量建立連接,后面可以使用F變量對文件進行操作。 Rewrite(F); // 打開文件。如果文件不存在,將會在C盤中創建MyFile.txt文件。如果文件存在,將會覆蓋MyFile.txt中的所有內容。 end; 17.Readln功能說明:讀取一行文本。 參考實例: var S: String; F: TextFile; begin AssignFile(F, 'C:\MyFile.txt'); // 將C:\MyFile.txt文件與F變量建立連接,后面可以使用F變量對文件進行操作。 Reset(F); // 打開文件 Readln(F, S); // 讀取一行文本到S變量中 end; 18.Rename功能說明:更改文件名。 參考實例: var F: File; begin AssignFile(F, 'C:\MyFile.txt'); // 將C:\MyFile.txt文件與F變量建立連接,后面可以使用F變量對文件進行操作。 ReName(F, 'C:\NewFile.txt'); // 更名為NewFile.txt end; 19.Writeln功能說明:寫入一行文本。 參考實例: var S: String; F: TextFile; begin S := 'This is a book.'; AssignFile(F, 'C:\MyFile.txt'); // 將C:\MyFile.txt文件與F變量建立連接,后面可以使用F變量對文件進行操作。 Rewrite(F); // 創建新文件 Writeln(F, S); // 將S變量中的內容寫入文本中。 end; 四、內存、指針操作函數在編程中,動態數組為我們處理數據帶來了很大的方便。Windows API函數也為增強程序的功能提供了強有力的保障。當我們在使用這些動態數組及API函數時,常常需要動態分配內存空間,這樣動態數組才能被我們使用,API函數才能正確的返回結果。因此,這些函數是必不可少的。 1.AllocMem功能說明:分配內存空間并自動初始化為零。如果不需要初始化為零,可以使用GetMem代替AllocMem。 參考實例: var Buffer: PChar; begin Buffer := AllocMem(256); // 分配大小為256個字節的內存空間 end; 2.Dispose功能說明:釋放為指針分配的內存空間。 參考實例: var P: Pinteger; // 聲明一個Integer(整型)指針 begin New(P); P^ := 100; Dispose(P) // 釋放內存 end; 3.FreeMem功能說明:釋放分配的內存空間。 參考實例: var Buffer: Pchar; begin GetMem(Buffer, 256); // 分配大小為256個字節的內存空間。 FreeMem(Buffer); // 釋放內存空間 end; 4.GetMem功能說明:分配內存空間。 參考實例: var Buffer: PChar; begin GetMem(Buffer, 256); // 分配大小為256個字節的內存空間。 end; 5.New功能說明:為指針分配內存空間。 參考實例: var P: PInteger; // 聲明一個Integer(整型)指針 begin New(P); // 分配內存 P^ := 100; // 賦值 end; 五、數學運算函數我們在編寫跟數學緊密相關的程序時,數學運算函數將大有用處。比如圖像處理軟件,就會大量用到這些數學運算函數。 默認情況下,Delphi新建的工程里,沒有包含大多數的數學運行函數,因此需要在Uses中加入Math單元。 1.Abs功能說明:求絕對值。 參考實例: var r: Single; i: Integer; begin r := Abs(-2.8); // r等于 2.8 i := Abs(-156); // I 等于 156 end; 2.Exp功能說明:Exp返回e的X次冪的值,其中e是一個自然對數基底。 參考實例: e := Exp(1.0); // e為real型變量 end; 3.Floor功能說明:取得小于等于X的最大的整數。 參考實例: Floor(-2.8) = -3 Floor(2.8) = 2 Floor(-1.0) = -1 4.Int功能說明:返回參數中的整數部分。 參考實例: var R: Real; begin R := Int(123.456); // R等于 123.0 R := Int(-123.456); // R等于 -123.0 end; 5.Max(所在單元:Math)功能說明:比較兩個數字,并返回最大的一個數字。 參考實例: var k: Integer; begin k := Max(10, 20); // k將為20 end; 6.Min(所在單元:Math)功能說明:比較兩個數字,并返回最小的一個數字。 參考實例: var k: Integer; begin k := Min(10, 20); // k將為10 end; 7.PI功能說明:精確計算返回圓周率。 參考實例: var x Extended; begin x := PI; // x等于3.1415926535897932385 end; 8.Round功能說明:對一個實數進行四舍五入。 參考實例: var I, j: Integer; begin i := Round(1.25); // i等于1 j := Round(1.62); // j等于2 end; 9.Sqr功能說明:取給定值的平方。 參考實例: var i: Integer; begin i := Sqr(3); // i等于9 end; 六、日期函數對日期的處理,一般在有日期限制的共享、商業軟件中經常使用到。如果你打算編寫一款有日期限制的軟件,熟悉使用下面的函數即可以實現。 1.Date功能說明:返回當前的日期。 參考實例: procedure TForm1.Button1Click(Sender: TObject); begin Label1.Caption := '今天是:' + DateToStr(Date); end; Label顯示為:今天是2005年1月1日。 2.DateToStr功能說明:將日期型轉換為字符型。 參考實例: var S: String; begin S := DateToStr(Date); end; 3.DateTimeToStr功能說明:將DateTime型轉換為字符型。 參考實例: var S: String; begin S := DateTimeToStr(Now); end; 4.DayOfTheMonth(所在單元:DateUtils)功能說明:獲取指定日期的日。 參考實例: Label1.Caption := IntToStr(DayOfTheMonth(Now)); 假設當前日期為2005年1月2日,那么Label將顯示為2。 5.DayOfTheWeek(所在單元:DateUtils)功能說明:根據指定日期,獲取星期幾。 參考實例: Label1.Caption := IntToStr(DayOfTheMonth(Now)); 假設當前日期為2005年1月2日,那么Label將顯示為7。根據返回的值來判斷是周幾。7表示星期天,1為星期一,依類類推。 6.DayOfTheYear(所在單元:DateUtils)功能說明:根據指定日期,獲取天數。 參考實例: Label1.Caption := IntToStr(DayOfTheYear(Now)); 假設當前日期為2005年1月2日,那么Label將顯示為2。表示是2005年的第2天。 7.DayOf(所在單元:DateUtils)功能說明:根據指定的日期,返回日。 參考實例: Label1.Caption := IntToStr(DayOf(Date)); 假設當前日期為2005年1月2日,那么Label將顯示為2。 8.IsLeapYear功能說明:根據指定的年,判斷是否為閏年??墒褂肶earOf函數獲取年。 參考實例: procedure TForm1.Button1Click(Sender: TObject); begin if IsLeapYear(YearOf(Date)) then ShowMessage('是閏年') else ShowMessage('不是閏年'); end; 9.MonthOf(所在單元:DateUtils)功能說明:根據指定的日期,返回月份。 參考實例: Label1.Caption := IntToStr(MonthOf(Date)); 假設當前日期為2005年1月2日,那么Label將顯示為1。 10.Now功能說明:返回當前日期及時間。 參考實例: procedure TForm1.Button1Click(Sender: TObject); begin Label1.Caption := '現在是:' + DateTimeToStr(Now); end; 11.YearOf(所在單元:DateUtils)功能說明:根據指定的日期,返回年。 參考實例: Label1.Caption := IntToStr(YearOf(Date)); 假設當前日期為2005年1月2日,那么Label將顯示為2005。 |
轉載于:https://www.cnblogs.com/tecsoon/archive/2009/03/14/1412081.html
總結
以上是生活随笔為你收集整理的Delphi 7.0常用函数速查手册的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 修改MOSS2007内容查询部件实现自定
- 下一篇: c#4.0新特性之一: Dynamic