Syncope.T-*
728x90

Split는 '분리하다, 나누다'라는 뜻을 가진 단어에요.

같은 이름의 함수 역시 문자열을 구분자를 기준으로 나누어주는 역할을 해요.

 

 Split 나눌 문자열, [구분자], [나눔 한계], [나눔 방법] 

 

'나눌 문자열'은 구분자를 기준으로 나누어질 대상 문자열이에요.

생략 불가능한 인수에요.

 

'구분자'는 '나눌 문자열'이 무엇을 기준으로 나뉘어지는지를 뜻하는 문자열이에요.

'구분자'가 '나눌 문자열'에 없는 문자열이라면 '나눌 문자열' 그대로가 반환되어요.

생략 가능하고, 생략하면 공백으로 처리되어요.

 

'나눔 한계'는 '나눌 문자열'이 '구분자'에 의해 최대 몇 조각 날 수 있는지를 뜻하는 수에요.

'조각의 수'이므로 1을 입력하면 '나눌 문자열' 그대로, 2는 한 번 나눠지며 3은 두 번 나뉘어지는 거에요.

생략 가능하고, 생략하면 -1로 처리되어 '구분자'에 의해 제한 없이 모두 나뉘어져요.

 

'비교 방법'은 'vbTextCompare', 'vbBinaryCompare'로 두가지가 있는데 'vbTextCompare'는 대소문자를 구분하지 않고 'vbBinaryCompare'는 대소문자를 구분해요.

생략 가능하고, 생략하면 'vbBinaryCompare'로 처리되어요.

 

Split 함수의 반환 값을 받을 땐 배열을 이용해야해요.

'구분자'에 의해 분해된 각각의 문자열들이 배열에 순서대로 대입되는 거에요.

 

ex) Dim GGM() as String

GGM = Split("9,7,야옹,2,야호", ",")

'GGM(1) = "9", GGM(2) = "7", GGM(3) = "야옹", GGM(4) = "2", GGM(5) = "야호"

 

"Split라는 자칭 마법사, 그 자식이 내 몸을 구석구석 분해했던 생각만 떠올리면... 으으으!" - 나눌 문자열

다들 알다시피, Split()라는 함수는 원본 문자열을 특정한 기준에 따라 분해하여 반환하는 함수에요.

그런데 이 함수는 다른 일반적인 함수들과는 약간 다른 점이 있지요!

바로 배열을 반환한다는 것이에요.

 

간단한 예로, 아래의 코드를 보아주세요.

 

Dim A as Long

A = int(1.1)

 

위 코드는 정수를 반환하는 int() 함수를 이용해 변수 A에 1을 대입해요.

하지만 Split() 함수는 아래와 같이-

 

Dim A() as Long

A = Split("고구마,맛,감자", ",")

 

"고구마,맛,감자"라는 문자열에서 콤마(,)를 기준으로 "고구마", "맛", 그리고 "감자"로 나누어요.

게다가 이 문자열들은 각각 A(0) = "고구마", A(1) = "맛", A(2) = "감자"로 정의되지요.

배열을 반환한 것이에요!

 

그렇다면 이런 식으로 사용자 함수에서 배열을 반환하려면 어떻게 해야 할까요?

 

답은 간단해요.

아래 코드를 보아주세요.

 

Function ImWinner() As Long() '승자 함수 (배열 형태)
Dim zNz(1 To 3) As Long '변수 배열 (사이즈 3)
zNz(1) = 1 '값 지정
zNz(2) = 2
zNz(3) = 4
ImWinner = zNz '함수 배열 = 변수 배열
End Function

 

Private Sub Form_Load()
Dim Loser() As Long '패배자 변수
Looser = ImWinner '승자 -> 패배자
Print Loser(1) '패배자의 증명
Print Loser(2)
Print Loser(3)
End Sub

 

함수의 반환 형태 뒤에 괄호를 붙임으로서 배열임을 나타내고, 내부에서 배열 변수를 선언하고 처리해서 반환하는 거에요.

반환 값을 받을 배열 변수의 크기가 지정되지 않은 상태여도, Split() 함수와 마찬가지로 반환한 배열의 크기와 일치된답니다.

profile

Syncope.T-*

@Syncope

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

profile on loading

Loading...