2013-11-14 4 views
0

에 #을 교체하십시오 Audit_######_ 지금은 6 자리 소요내가 VB 스크립트에서이 라인이 VB 스크립트

fileCheck = Right(objLookFile.name, len(objLookFile.name) - len("Audit_######_")) 

합니다. Audit_1002611_Comnpany_MTH_11_2013.00001.txt

내가 자리의 수를 허용하도록 ######을 변경하는 방법 : 나는 7 자리와 파일의 8 예와 파일이 상황을 있어요?

 dim lookFor 
    lookFor = fiRef(i_fi) & "_" & AIOType(i_type) & "_" & Right("00" & (month(processDate + 1)), 2) & "_" & Year(processDate + 1) & ".00001.txt" 
    dim minLen 
    minLen = len(lookFor) 
    dim objLookFolder, objLookFile 
    set objLookFolder = objFSO.GetFolder(AIODVDDir) 
    For each objLookFile in objLookFolder.files 
     if Len(objLookFile.name) >= minLen then 
      dim fileCheck 
      fileCheck = Right(objLookFile.name, len(objLookFile.name) - len("Audit_######_")) 
      if (Left(objLookFile.name, len("Audit_")) = "Audit_") AND (fileCheck = LookFor) then 
       'found the audit file 

가 그것의 길이를 점점 이외의 "Audit_######_" 아무것도하지 않는 당신에게

+0

변수에 제공 할 수있는 "감사 _ ######"가 있습니까? 그런 다음 "Audit _ ######"을 들어오는 문자열로 바꿉니 까? –

+0

지미 나는 내 게시물을 편집했습니다 – fazlook1

답변

1

음을 감사드립니다. 이 처음 13자를 제거하는 해킹 방법처럼 보입니다.

스마트 방법은 두 번째 밑줄 후 모든 것을 얻을 수 있습니다 :

fileCheck = mid(objLookFile.name, instr(instr(objLookFile.name, "_") + 1 , "_")+1) 
+0

잘못된 프로 시저 호출 또는 인수 : 'mid' – fazlook1

+0

내 게시물을 편집 했으므로 filecheck = lookfor가 필요하므로 일치하도록하십시오 !!! – fazlook1

+0

고정 된 : fileCheck = mid (objLookFile.name, instr (2, objLookFile.name, "A"))를 사용했습니다. 왜냐하면 2가 항상 A이고 항상 1이 있기 때문입니다. :) – fazlook1

1

이 처리하는 방법은 여러 가지가 있습니다. 문자열 작업을 D Stanley으로 제안하는 것도 한 가지 방법입니다. 또 다른 조각을 밑줄에서 파일 이름을 분할하고 검토하는 것입니다 : 정규 표현식을 사용

arr = Split(objLookFile.Name, "_", 3) 
If UBound(arr) = 3 Then 
    If arr(0) = "Audit" And IsNumeric(arr(1)) And arr(2) = lookFor Then 
    ... 
    End If 
End If 

아마 가장 좋은 방법입니다,하지만 :

Set re = New RegExp 
re.Pattern = "Audit_\d+_" & fiRef(i_fi) & "_" & AIOType(i_type) _ 
    & "_" & Right("00" & (month(processDate + 1)), 2) _ 
    & "_" & Year(processDate + 1) & "\.00001\.txt" 

For Each objLookFile In objFSO.GetFolder(AIODVDDir).Files 
    If re.Test(objLookFile.Name) Then 
    ... 
    End If 
Next 

\d+ 하나 이상의 숫자와 일치합니다. 제한된 자릿수 (예 : 6 자 이상 8 자 이하)를 일치 시키려면 패턴의 해당 부분을 \d{6,8}으로 바꿉니다.