程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> Visual Basic語言 >> VB綜合教程 >> 將阿拉伯數字轉成中文字的程式

將阿拉伯數字轉成中文字的程式

編輯:VB綜合教程
一個Form
  一個TextBox
  一個Label
  
  這個修訂後的程式是當使用者在TextBox中輸入只包含0~9的數值後,在Label中就可看見被轉換後的中文字,例如:1560890轉成"壹佰伍拾陸萬零捌佰玖拾"。程式限制為不可輸入超過16個數字。
  
  請建立一個新專案,並在表單中放入上述物件,再把以下程式碼復制到表單的程式
  碼視窗,最後按下F5來執行。
  
  PrivateSubForm_Load()
  Text1.MaxLength=16
  Text1.Text=""
  Label1.Caption=""
  Label1.AutoSize=True
  Label1.BorderStyle=1
  EndSub
  
  PrivateSubText1_Change()
  Label1.Caption=CChinese(Text1.Text)
  EndSub
  
  PrivateFunctionCChinese(StrEngAsString)AsString
  IfNotIsNumeric(StrEng)OrStrEngLike"*.*"OrStrEngLike"*-*"Then
  IfTrim(StrEng)<>""ThenMsgBox"無效的數字"
  CChinese="":ExitFunction
  EndIf
  DimintLenAsInteger,intCounterAsInteger
  DimstrChAsString,strTempChAsString
  DimstrSeqCh1AsString,strSeqCh2AsString
  DimstrEng2ChAsString
  strEng2Ch="零壹貳三肆伍陸柒捌玖"
  strSeqCh1="拾佰仟拾佰仟拾佰仟拾佰仟"
  strSeqCh2="萬億兆"
  StrEng=CStr(CDec(StrEng))
  intLen=Len(StrEng)
  ForintCounter=1TointLen
  strTempCh=Mid(strEng2Ch,Val(Mid(StrEng,intCounter,1)) 1,1)
  IfstrTempCh="零"AndintLen<>1Then
  IfMid(StrEng,intCounter 1,1)="0"Or(intLen-intCounter 1)Mod4=1Then
  strTempCh=""
  EndIf
  Else
  strTempCh=strTempCh&Trim(Mid(strSeqCh1,intLen-intCounter 1,1))
  EndIf
  If(intLen-intCounter 1)Mod4=1Then
  strTempCh=strTempCh&Mid(strSeqCh2,(intLen-intCounter 1)4 1,1)
  IfintCounter>3Then
  IfMid(StrEng,intCounter-3,4)="0000"ThenstrTempCh=Left(strTempCh,Len(strTempCh)-1)
  EndIf
  EndIf
  strCh=strCh&Trim(strTempCh)
  Next
  CChinese=strCh
  EndFunction->

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved