三個Trim函數簡介
函數原型 function Trim(const S: string): string; 將字符串前后的空白及控制字元清掉.
注意Trim函數只能清掉字符串前后的空格及控制字元,不能清除字符串中間的空格
函數原型 function TrimLeft(const S: string): string; 將字符串左邊的空白及控制字元清掉.
函數原型 function TrimRight(const S: string): string; 將字符串右邊的空白及控制字元清掉.
Trim實際應用場景舉例
以下有一個使用Delphi的Trim函數的實際的場景,看完也許能讓你更為深刻的認知Trim在實際開發中的應用
進行Delphi數據庫應用,想做一個用戶身份確認的登陸窗口,就是輸入用戶名和密碼然后去數據庫取出數據驗證用戶身份,可是程序運行時候,盡管每次輸入的用戶名稱和密碼都是 正確的,可是程序總是說我的密碼輸入有錯誤,問題出在何處呢?請看代碼
if ibt_user_pass.RecordCount=1 then begin if ibt_user_pass.FieldByName('passwd').AsString=edit2.Text then //**** form_student_login.Hide else application.MessageBox('請確認密碼是否正確!','密碼不匹配',MB_OK); end else application.MessageBox('請確認用戶名是否正確!','無此用戶',mb_ok) end;
才知道原來是加//**** 注釋那行的代碼存在問題,數據庫如果某個字段是Char類型的數據,才存放數據后會自動在字符串后面補上空格,以滿足位數的需要,因此表面上看,取得的密碼和我輸入的密碼一樣,實際上是不一樣的。
解決方法:
辦法1:
if ibt_user_pass.FieldByName('passwd').AsString = edit2.Text then
改為
trim(ibt_user_pass.FieldByName('passwd').AsString=edit2.Text then
Trim 函數作用是去掉字符串中多加上去的空格
辦法2:
數據庫的char 類型改成 varchar類型