Syncope.T-*
Published 2011. 12. 23. 08:12
[14] Parsing - 파싱 Visual Basic 6.0
728x90

파싱(parsing)은 사전적으로 '어구의 해부'(또는 구문의 해석)를 뜻해요.

다시말해 문자열을 의미있는 단위로 나누어내는 것이지요.

 

프로그래밍에서 역시 파싱은 '의미있는 문자열만을 추출함'이라는 뜻으로 자주 쓰여요.

예를 들어 아래와 같은 문자열이 있는 거에요.

 

"과자가 있었다.고구마가 있었다.음모가 있었다."

 

만약 당신이 이 전체 문자열을 원하지 않는다면, 단지 무엇들이 있었는지만 알고 싶다면-

다음과 같은 코드를 이용해서 문자열 배열로 추출해낼 수 있을 거에요.

 

Dim T() as String

Const Ostr as String = "과자가 있었다.고구마가 있었다.음모가 있었다."

T = Split(Ostr, "가 있었다.")

'T(0) = "과자", T(1) = "고구마", T(2) = "음모", T(3) = ""

 

파싱을 하기 위해서는 그대가 원하는 문자열이 존재하는 형태를 미리 알고 있어야만 해요.

대표적인 것들이 다음과 같아요.

 

1. 'N번째 글자부터 M번째 글자까지가 원하는 문자열'

2. 'i번째 글자, j번째 글자, k번째 글자가 원하는 문자열'

3. '왼쪽에서 C번째까지가 원하는 문자열'

4. '오른쪽에서 D번째까지가 원하는 문자열'

5. 'A 문자열과  B 문자열 사이가 원하는 문자열'

 

대부분의 파싱 작업은 Left(), Right(), Mid() 함수의 조합만으로도 끝낼 수 있어요.

 

1. 'N번째 글자부터 M번째 글자까지가 원하는 문자열'

 소스 코드 : 결과 = Mid(문자열, N, M)

2. 'i번째 글자, j번째 글자, k번째 글자가 원하는 문자열'

 소스 코드 : 결과 = Mid(문자열, i, 1) & Mid(문자열, j, 1) & Mid(문자열, k, 1)

3. '왼쪽에서 C번째까지가 원하는 문자열'

 소스 코드 : 결과 = Left(문자열, C)

4. '오른쪽에서 D번째까지가 원하는 문자열'

 소스 코드 : 결과 = Right(문자열, D)

 

마지막 5번과 같은 경우도 Mid() 함수와 Instr() 함수를 사용하여 구현할 수 있어요.

 

5. 'A 문자열과  B 문자열 사이가 원하는 문자열'

 소스 코드 : 결과 = Mid(문자열, InStr(문자열, A) + 1, InStr(문자열, B) - InStr(문자열, A) - 1)

 

하지만 위와 같은 처리 방법은, 원하는 문자열이 여러개일 경우에 가장 앞의 것만 가져오게 되어요.

따라서 가장 먼저 예로 들었던 '과자, 고구마, 음모'와 같이 Split() 함수를 사용한답니다.

 

5. 'A 문자열과  B 문자열 사이가 원하는 문자열'

 소스 코드 :

결과 = Split(문자열, A)
Dim i As Long
For i = LBound(결과) + 1 To UBound(결과)
    If InStr(결과(i), B) Then
        결과(i) = Left(결과(i), InStr(결과(i), B) - 1)
    Else
        결과(i) = ""
    End If
Next i

 

자, 이것으로 끝이에요.

단지 지금까지 설명한 방법들만으로도 충분히 모든 파싱 작업을 처리하실 수 있어요.

파싱은 문자열이 존재하는 형태, 그리고 그에 맞는 파싱 방법을 선택하는 것이 전부인 단순한 것이에요!

profile

Syncope.T-*

@Syncope

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!

profile on loading

Loading...