VBS(Visual Basic Script)

[Visual Basic] VBScript, 파일 전체를 읽고 Line별로 쪼갠 후 List (Array)으로 반환, Comma로 Text 쪼개기

안산드레아스 2023. 4. 13. 17:47
반응형

아래와 같이 3개 줄로 나뉜 Text파일이 있다.

구분자는 Comma (쉼표) 으로 되어있다.

이 Text파일을 읽고 Line을 각 Array으로 가져온다.

 

코드를 미리 분석하면 아래 data 변수는 각 줄을 하나의 묶음 List 으로 내보낸다.

Split을 이용해 comma를 기준으로 각 항목을 잘라서 List으로 저장하여 2차 배열 (Array)으로 내보낸다.

반응형

 

함수로 return하여 새로운 변수 ColLines에 담았다.

이 ColLines는 각 줄의 정보가 하나씩 담겨있고 (1차 배열)

위와같이 For Each으로 3개의 줄을 하나씩 나눠서 또 data(0), data(1), data(2), data(3)  으로 각각의 값을 확인할 수 있다.

 

코드

Function readFilereturnLineList(file_path)
    Dim fso, inputFile, line, lines, data
    
    ' 파일 시스템 객체 생성
    Set fso = CreateObject("Scripting.FileSystemObject")
    
    ' 입력 파일 열기
    Set inputFile = fso.OpenTextFile(file_path, 1)
    
    ' 파일 내 각 줄을 읽어서 리스트에 추가합니다
    Do Until inputFile.AtEndOfStream
        line = inputFile.ReadLine()
        If Len(Trim(line)) > 0 Then
            lines = lines & line & vbCrLf
        End If
    Loop
    
    ' 각 줄을 하나의 리스트로 만듭니다
    data = Split(lines, vbCrLf)
    For i = 0 To UBound(data)
        data(i) = Split(data(i), ",")
    Next
    
    ' 결과 리스트를 반환합니다
    readFilereturnLineList = data
    
    ' 파일 닫기
    inputFile.Close
End Function

Dim colLines, data
colLines = readFilereturnLineList("output.txt")

For Each data In colLines
    If UBound(data) >= 0 Then
        MsgBox data(0)
        MsgBox data(1)
        MsgBox data(2)
        MsgBox data(3)
    End If
Next

 

결과는 msgbox로 출력되고, 만약 data(0)만 출력한다면 아래와 같다.

즉, 아래와 같이 첫번째 항목만 뽑았다고 보면 된다.

반응형