用vbs写一个方法 函数名和参数我已经定掉了 mode = 1 左对齐 mode = 2 右对齐 strRetLen 函数返回的string长度 targetStr 要转换的目标string 要实现的功能是对于我要转换的string,根据左对齐或者右对齐来补足space返回 比如 StrConvert(“123”,8,1) 则返回「123 」 StrConvert(“123”,8,2) 则返回「 123」 如果要转换的string长度比要返回的长度长,则按左对齐或者右对齐去截掉 StrConvert(“123456”,3,1) 则返回「123」 StrConvert(“123456”,3,2) 则返回「456」 Function StrConvert(ByVal targetStr,ByVal strRetLen,ByVal mode) End Function
方法一
Function StrConvert(ByVal targetStr,ByVal strRetLen,ByVal mode)
Dim i '目标字符串长度
Dim j '目标字符串长度和要返回的长度之差
Dim result '输出结果
i=len(targetStr)
j=strRetLen-i
If i<=strRetLen Then
Select Case mode
Case 1
'输出靠左的,不够的空格补齐
result=targetStr+space(j)
Case 2
'输出靠右的,不够的空格补齐
result=space(j)+targetStr
End Select
Else
Select Case mode
Case 1
'使用函数left,输出靠左的,多出来的直接去掉
result=left(targetStr,strRetLen)
Case 2
'使用函数right,输出靠右的,多出来的直接截掉
result =right(targetStr,strRetLen)
End Select
End If
End Function
方法二
Function StrConvert(ByVal targetStr,ByVal strRetLen,ByVal mode)
Dim re '补空格
Dim result '输出最终字符串
Select Case mode
Case 1
re=targetStr+space(strRetLen)
result=left(re,strRetLen)
Case 2
re=space(strRetLen)+targetStr
result=right(re,strRetLen)
End Select
End Function
方法三
Option Explicit
'+++++++++ System Settings +++++++++++++++++++++++++++++++++
''VBS名
Const MODE1 = 1
Const MODE2 = 2
'**************************************************************
'z+++++++++ Script Start ++++++++++++++++++++++++++++++++++++
'Main関数の呼び出し
Call Main()
'@***********************************************************
''メイン関数<br>
'@z***********************************************************
Function Main()
Call StrConvert("1237",10,1)
End Function
Function StrConvert(ByVal targetStr,ByVal strRetLen,ByVal mode)
Dim targetLen
Dim Absvalue
Dim value : value = ""
targetLen = Len(targetStr)
Absvalue = Abs(targetLen - strRetLen)
If targetLen = strRetLen Then
value = targetStr
End If
If targetLen > strRetLen and mode = MODE1 Then
value = Left(targetStr,strRetLen)
End If
If targetLen > strRetLen and mode = MODE2 Then
value = Right(targetStr,strRetLen)
End If
If targetLen < strRetLen and mode = MODE1 Then
value = targetStr&Space(Absvalue)
End If
If targetLen < strRetLen and mode = MODE2 Then
value = Space(Absvalue)&targetStr
End If
MsgBox value
End Function