[唐胡璐]VBS技巧 - Pad Number String with Zeroes(在字符串左侧补0)

 '******************************************************************************* 
'Description : Pads a number with zeroes on the left, according to the expected maximum length of the numbers in the list. ' 

'Purpose : To keep a number list sorted properly, as with a file list (001, 002,..., 010, and not 1, 10, 11,..., 2, 20). ' 

'Arguments : intCurrentNum (the current number to be padded) 
            'intMaxNumInList (the top number in the list) 

'Note: The arguments are always taken in absolute values 

'Returns : The padded intCurrentNum (for example, If 1 and 9999 are sent to the function, the result will be 0001) ' 

'*******************************************************************************  
PublicFunction PadNumber(ByVal intCurrentNum, ByVal intMaxNumInList) 
   
'Validates the arguments - if invalid then it returns the value as is     
    If (NotIsNumeric(intCurrentNum) OrNotIsNumeric(intMaxNumInList)) Then         
        PadNumber = intCurrentNum         
        ExitFunction     
    EndIf    
     
    If (Abs(intCurrentNum) >= Abs(intMaxNumInList)) Then         
        PadNumber = intCurrentNum         
        ExitFunction     
    EndIf     
    
    PadNumber = String(len(CStr(Abs(intMaxNumInList)))-len(CStr(Abs(intCurrentNum))), "0") _  
                 & CStr(Abs(intCurrentNum)) 
                   
EndFunction


'*******************************************************************************  
'Msgbox PadNumber(4, 34567)    'Returns 00004 
'Msgbox PadNumber(-4, 34567)   'Returns 00004  
'Msgbox PadNumber(4, -34567)   'Returns 00004 
'Msgbox PadNumber(34567, 4)    'Returns 34567 
'Msgbox PadNumber(4, 9)        'Returns 4 
'Msgbox PadNumber("Hello", 9999) 'Returns Hello

posted @ 2013-01-11 11:29  唐胡璐  阅读(301)  评论(0编辑  收藏  举报