VBS(Visual Basic Script)

[Visual Basic] 비주얼베이직 스크립트 (VBScript), 특정 로그파일 등 문자열 쪼개기로 정제시키기

안산드레아스 2023. 7. 12. 14:38
반응형

로그같이 지저분한 파일들을 모두 Space 기준으로 쪼갠 후

배열으로 저장시킴.

필요없는 문자열들 예를들면 mm나 : 등등 모두 null으로 변경 시키기 (Replace 함수)

최종적으로 , 콤마를 기준으로 데이터만 출력하는 파일을 생성.

 

샘플 스크립트

여기서 쪼개진 splitedLine 은 Array 타입이다.

Dim import, export
import = "스페이스바로 분리시킬 파일.txt"
export = "결과 출력파일 이름.txt"

Call ExtractComponentInfo(import, export)

Function ExtractComponentInfo(inputFile, outputFile)
    Dim objFSO, objFileIn, objFileOut
    Dim strLine, splitedLine
    Dim comp1, comp2, dist, minz

    Set objFSO = CreateObject("Scripting.FileSystemObject")
    Set objFileIn = objFSO.OpenTextFile(inputFile, 1)
    Set objFileOut = objFSO.CreateTextFile(outputFile, True)

    Do Until objFileIn.AtEndOfStream
        strLine = objFileIn.ReadLine()
        splitedLine = Split(strLine, " ")

        ' UBound(splitedLine) 배열의 크기가 4인지 확인 (0~4 까지 총 5개가 들어있는 배열)
        If UBound(splitedLine) = 4 Then
            comp1 = splitedLine(1)
            comp2 = Replace(splitedLine(4), ":", "")
        End If

       If UBound(splitedLine) > 4 Then
            dist = Replace(Replace(splitedLine(9), "mm", ""), ",", "")
            minz = Replace(splitedLine(13), "mm", "")
            objFileOut.WriteLine comp1 & "," & comp2 & "," & dist & "," & minz
        End If
    Loop

    objFileIn.Close
    objFileOut.Close

    Set objFileIn = Nothing
    Set objFileOut = Nothing
    Set objFSO = Nothing
End Function

 

 

반응형