回覆列表
  • 1 # hogey14707

    方法一:用VB的函式LCase和UCase用三個TextBox來展現一下這兩個函式的大小寫轉換功能[執行之前在TextBox1中輸入幾個大寫字母,也可混合輸入]:PrivateSubCommand1_Click()Text2.Text=LCase(Text1.Text)"將Text1的文字全換成小寫Text3.Text=UCase(Text2.Text)"將Text1的文字全換成大寫EndSub說明:LCase僅將是大寫的轉換為小寫,UCase則僅將是小寫的轉換為大寫,故當字串中有其它不符合轉換的內容時將對其忽略。可以在TextBox1中輸入漢字、阿拉伯數字等觀察效果。方法二:用API函式user32提供兩個用於大小寫轉換的API函式:Charlower[大寫-小寫]、Charupper[小寫-大寫],其原形分別為:DeclareFunctionCharLowerLib"user32"Alias"CharLowerA"(ByVallpszAsString)AsLongDeclareFunctionCharUpperLib"user32"Alias"CharUpperA"(ByVallpszAsString)AsLong繼續用三個文字框來觀察效果:PrivateSubCommand1_Click()DimaAsStringa=Text1.Text"給變數賦初值CharUppera"變為大寫Text2.Text=aCharLowera"變為小寫Text3.Text=aEndSub說明:與方法一的效果完全一樣。實際上,VB的LCase和UCase函式呼叫的也就是這兩個API函式,是封裝了這兩個API函式的內部函式。方法三:用演算法可以利用Ascii碼對大小寫字母字元程式碼的定義來強制輸入的字母只能為大寫的或者小寫的,而不管CapsLock鍵是開啟的還是關閉的。就象安裝Windows時使用者輸入CD-KEY一樣。請看:PrivateSubText1_KeyPress(KeyAsciiAsInteger)"輸入的字母通通為小寫IfKeyAscii>64AndKeyAscii<91ThenKeyAscii=KeyAscii+32EndSubPrivateSubText2_KeyPress(KeyAsciiAsInteger)"輸入的字母通通為大寫IfKeyAscii>96AndKeyAscii<123ThenKeyAscii=KeyAscii-32EndSub說明:在Ascii字符集裡,大寫A--Z對應於字元程式碼65--90,小寫a--z對應於97--122。以A為例,小寫a[95]與大寫A[65]的字元程式碼相差32,其它字母也是如此。當然可以藉此編制一個函式來完成象方法一、二一樣將字串進行大小寫互換,略顯複雜些,也沒什麼必要。

  • 中秋節和大豐收的關聯?
  • 熱血江湖怎麼使用夫妻技能?