Namespace Test.Com
_
'<summary>
' 功能:字符串处理函数集
' </summary>
Public Class DealString
'
'ToDo: Error processing original source shown below
'
'
'-----^--- Pre-processor directives not translated
' <summary>
'
'ToDo: Error processing original source shown below
'
'
'--^--- Unexpected pre-processor directive
' 输入字符串
' </summary>
Private inputString As String = Nothing
' <summary>
' 输出字符串
' </summary>
Private outString As String = Nothing
' <summary>
' 提示信息
' </summary>
Private noteMessage As String = Nothing
'
'ToDo: Error processing original source shown below
'
'
'-----^--- Pre-processor directives not translated
'
'ToDo: Error processing original source shown below
'
'
'--^--- Unexpected pre-processor directive
'
'ToDo: Error processing original source shown below
'
'
'-----^--- Pre-processor directives not translated
' <summary>
'
'ToDo: Error processing original source shown below
'
'
'--^--- Unexpected pre-processor directive
' 输入字符串
' </summary>
Public Property InputString() As String
Get
Return inputString
End Get
Set
inputString = value
End Set
End Property ' <summary>
' 输出字符串
' </summary>
Public Property OutString() As String
Get
Return outString
End Get
Set
outString = value
End Set
End Property ' <summary>
' 提示信息
' </summary>
Public Property NoteMessage() As String
Get
Return noteMessage
End Get
Set
noteMessage = value
End Set
End Property
'
'ToDo: Error processing original source shown below
'
'
'-----^--- Pre-processor directives not translated
'
'ToDo: Error processing original source shown below
'
'
'--^--- Unexpected pre-processor directive
'
'ToDo: Error processing original source shown below
'
'
'-----^--- Pre-processor directives not translated
Public Sub New()
End Sub 'New
'
'ToDo: Error processing original source shown below
'
'
'--^--- Unexpected pre-processor directive
'
' TODO: 在此处添加构造函数逻辑
'
'
'ToDo: Error processing original source shown below
'
'
'-----^--- Pre-processor directives not translated
'
'ToDo: Error processing original source shown below
'
'
'--^--- Unexpected pre-processor directive
'
'ToDo: Error processing original source shown below
'
'
'-----^--- Pre-processor directives not translated
Public Sub ConvertToChineseNum()
'
'ToDo: Error processing original source shown below
'
'
'--^--- Unexpected pre-processor directive
Dim numList As String = "零壹贰叁肆伍陆柒捌玖"
Dim rmbList As String = "分角元拾佰仟万拾佰仟亿拾佰仟万"
Dim number As Double = 0
Dim tempOutString As String = Nothing
Try
number = Double.Parse(Me.inputString)
Catch
End Try
If number > 9999999999999.99 Then
Me.noteMessage = "超出范围的人民币值"
End If
'将小数转化为整数字符串
Dim tempNumberString As String = Convert.ToInt64((number * 100)).ToString()
Dim tempNmberLength As Integer = tempNumberString.Length
Dim i As Integer = 0
While i < tempNmberLength
Dim oneNumber As Integer = Int32.Parse(tempNumberString.Substring(i, 1))
Dim oneNumberChar As String = numList.Substring(oneNumber, 1)
Dim oneNumberUnit As String = rmbList.Substring(tempNmberLength - i - 1, 1)
If oneNumberChar <> "零" Then
tempOutString += oneNumberChar + oneNumberUnit
Else
If oneNumberUnit = "亿" Or oneNumberUnit = "万" Or oneNumberUnit = "元" Or oneNumberUnit = "零" Then
While tempOutString.EndsWith("零")
tempOutString = tempOutString.Substring(0, tempOutString.Length - 1)
End While
End If
If oneNumberUnit = "亿" Or(oneNumberUnit = "万" And Not tempOutString.EndsWith("亿")) Or oneNumberUnit = "元" Then
tempOutString += oneNumberUnit
Else
Dim tempEnd As Boolean = tempOutString.EndsWith("亿")
Dim zeroEnd As Boolean = tempOutString.EndsWith("零")
If tempOutString.Length > 1 Then
Dim zeroStart As Boolean = tempOutString.Substring(tempOutString.Length - 2, 2).StartsWith("零")
If Not zeroEnd And(zeroStart Or Not tempEnd) Then
tempOutString += oneNumberChar
End If
Else
If Not zeroEnd And Not tempEnd Then
tempOutString += oneNumberChar
End If
End If
End If
End If
i += 1
End While
While tempOutString.EndsWith("零")
tempOutString = tempOutString.Substring(0, tempOutString.Length - 1)
End While
While tempOutString.EndsWith("元")
tempOutString = tempOutString + "整"
End While
Me.outString = tempOutString
End Sub 'ConvertToChineseNum
End Class 'DealString
End Namespace 'Test.Com
'
'ToDo: Error processing original source shown below
'
'
'-----^--- Pre-processor directives not translated
'
'ToDo: Error processing original source shown below
'
'
'--^--- Unexpected pre-processor directive
转载:
Function CaseMoney
PARA Money
*辨别是否是数字金额
IF TYPE("Money") #"N"
=messagebox(" 金额类型出错",0,_screen.caption)
Return " "
EndIF
*转换金额为字符型
IF Money>9999999999999.99
=messagebox(" 数值太大,无法处理",0,_screen.caption)
Return " "
EndIF
CMoney=Allt(Str(Money,16,2))
*定义数组
DIME CaseFormat(10)
CaseFormat(1) ="壹"
CaseFormat(2) ="贰"
CaseFormat(3) ="叁"
CaseFormat(4) ="肆"
CaseFormat(5) ="伍"
CaseFormat(6) ="陆"
CaseFormat(7) ="柒"
CaseFormat(8) ="捌"
CaseFormat(9) ="玖"
Dime Unit(3)
Unit(1) ="拾"
Unit(2) ="百"
Unit(3) ="千"
*开始转换
M_Cmoney=""
MoneyLen=len(CMoney)
J=0
For i=MoneyLen To 1 step -1
Nowmoney=val(substr(CMoney,i,1))
IF Nowmoney>0
do case
Case i = MoneyLen
M_Cmoney=CaseFormat(Nowmoney)+"分"
Case i = MoneyLen-1
M_Cmoney="元"+CaseFormat(Nowmoney)+"角"+M_Cmoney
Case i = MoneyLen-3
M_Cmoney=CaseFormat(Nowmoney)+M_Cmoney
Case i < MoneyLen-3
IF mod((J+1),4)>0
M_Cmoney=CaseFormat(Nowmoney)+Unit(mod(J+1,4))+M_Cmoney
Else
M_J = int((j+1)/4)-1
IF M_J>0
IF M_J = 1 or M_J = 3
M_C = "万"+m_C
Else
M_C = "亿"+m_C
Endif
EndIF
IF left(M_Cmoney,2)="万"
M_Cmoney=right(M_Cmoney,len(M_Cmoney)-2)
EndIF
M_Cmoney=CaseFormat(Nowmoney)+M_C+M_Cmoney
EndIF
EndCase
Else
do case
Case i = MoneyLen-1
IF Empty(M_Cmoney)
M_Cmoney="元整"
Else
M_Cmoney="元零"+M_Cmoney
EndIF
Case i < MoneyLen-3
IF mod((J+1),4)>0
IF substr(M_Cmoney,1,2)#"零" and !substr(M_Cmoney,1,2)$"万亿元"
M_Cmoney="零" +M_Cmoney
EndIF
Else
M_J = int((j+1)/4)-1
IF M_J>0
IF M_J = 1 or M_J = 3
M_C = "万"+m_C
Else
M_C = "亿"+m_C
Endif
EndIF
IF substr(M_Cmoney,1,2)="万"
M_Cmoney=right(M_Cmoney,len(M_Cmoney)-2)
EndIF
M_Cmoney=M_C+M_Cmoney
EndIF
EndCase
EndIf
j=j+1
EndFor
Return M_Cmoney