• 북마크
  • 추가메뉴
어디로 앱에서 쉽고 간편하게!
애플 중고 거래 전문 플랫폼
오늘 하루 보지 않기
KMUG 케이머그

팁사용기

[팁] 문자열 함수-2 CountFields 에 대해서..

본문

안녕하세요? 미쉐린 김성준입니다. 오늘은 문자열 함수 2번재인 CountFields 함수에 대해서 알아보도록 하겠습니다.
CountFields 함수는 지난번에 공부했었던 NthField 함수와 연관이 있는 함수인데요.
NthField 에서 사용되는 구분자에 의해서 구분되는 필드수가 몇개인지를 확인할 때 사용되는 함수입니다.
CountFields 의 문법을 보도록 하겠습니다.

Result = CountFields(문자열, 구분자)

위에서 Result 인 결과 값은 정수형(Integer) 값을 리턴하게 됩니다. 즉 필드의 수를 숫자로 리턴한다는 말이 되죠. 그리고 해당 문자형 타입의 문자열과 구분하기 위한 구분자 값이 인수로 사용됩니다.
쉬운 설명(?)을 위해서 다음의 예를 보도록 하죠.

"김영권:KMUG:애플:매킨토시:레오파드:맥북에고성능그래픽카드를~!"

위의 예는 전에 공부했던 NthField의 예인데요. 위의 예에서 구분자를 ":"로 했을 경우 나뉘어지는 필드는 6개가 됩니다. 따라서 다음과 같이 하면 6이라는 값을 리턴하게 됩니다.

CountFields("김영권:KMUG:애플:매킨토시:레오파드:맥북에고성능그래픽카드를~!", ":")

그럼 바로 확인할 수 있는 리얼베이직 코드로 풀어서 써보면 다음과 같습니다.

dim i as Integer
dim s as String

s = "김영권:KMUG:애플:매킨토시:레오파드:맥북에고성능그래픽카드를~!"

i = CountFields(s, ":")

Msgbox str(i)

위의 코드를 리얼베이직 Window 의 Open 이벤트에 그냥 복사해서 넣기만 하시고 실행해보시기 바랍니다.
그럼 바로 6이라는 값을 화면에 보여줄 것 입니다.

그렇다면 CountFields 어느때 잘 사용하게 되느냐?
필드 값을 구하니까 필드값을 구할 때 사용한다고 생각하실 것 입니다. 맞습니다. 하지만 어느때에 필드의 갯수 값이 필요할까요?
예를 들어서 네트웍 프로그램을 만들때에 채팅 프로그램의 경우에서 문자를 받아들일때에나 데이타베이스 프로그램에서 데이타를 구분해줄 때에 그리고 많은 문자가 있는 경우 해당 필드로 구분자를 정해서 규칙적으로 나누었을 때에(무슨 말인지 모르겠지만 대충 아시겠죠...^^;;) 필요합니다. 그리고 그러한 해당 문자열에서 각각 필드의 값을 구할 때에는 NthField 함수를 사용하게 되는 것이구요.
그리고 필드의 갯수 값을 정확히 모를 경우는 잘못된 값을 리턴하거나 해당되는 플드의 문자를 정확하게 가져올 수 없기 때문에 오류가 생길 수 있겠죠.
그래서 필드 갯수를 구한 다음에 이 갯수 값을 이용해서 For 문과 같은 루프문과 같이 사용되는 경우가 많습니다.
다음의 예를 보도록 하죠. 다음의 예는 위의 "김영권:KMUG:애플:매킨토시:레오파드:맥북에고성능그래픽카드를~!" 문장을 a 라는 문자 배열에 넣는 것을 하도록 하겠습니다.
그럼 다음과 같이 코드를 입력해보면 됩니다.

dim s as String, a(-1) as String
dim i, c as Integer

s = "김영권:KMUG:애플:매킨토시:레오파드:맥북에고성능그래픽카드를~!"

c = CountFields(S, ":")

for i=1 to c
a.Append Nthfield(s, ":", i)
next

흠..위의 코드를 보시니 어떤가요? 대충 아시겠죠? 뭐냐하면 문자열 배열인 a 에 "김영권:KMUG:애플:매킨토시:레오파드:맥북에고성능그래픽카드를~!" 문자의 내용을 필드별로 분리해서 하나하나 넣는 것을 나타내는 것입니다. 위와 같은 형식은 예제이지만 비슷한 형태로 해서 문자 배열이나 데이타베이스, 클래스 등을 이용할 때에 자주 사용됩니다.
위의 코드에서 a(-1) as String 이라는 문장은 a 라는 문자형타입의 배열을 선언하는 것입니다.
배열은 원래 0부터 시작이 되기 때문에 초기 순서값을 -1로 해준것이구요. 추가되면 0부터 추가가 되겠죠.
그리고 Append 라는 것은 배열의 함수입니다. 즉 해당 배열에 값을 추가할 때 사용이 되는 것이죠.
NthField(s, ":", i) 는 루프인 For 에 의해서 i 값이 1부터 6까지 하나씩 증가하는데요. 해당 필드의 각각의 내용을 불러올 때 사용되는 것이죠. 당연히 구분자는 ":"로 하였구요.
대충 이해가 가시나요?
뭐 설명은 어렵지만 굉장히 쉬운 함수입니다. 그리고 자주 사용되기도 하구요..^^;;
저는 이 함수를 채팅 프로그램 만들때에 소켓을 통해 들어오는 문자형 데이타를 구분해줄때에 사용하기도 했습니다.
그럼 CountFields 함수의 설명은 여기까지구요. 다음에는 다른 문자형 함수에 대해서 공부를 해보기로 하겠습니다.
그럼 좋은 하루 되세요~!

PS. 오타, 오류, 질문에 대해서는 게시판에 여지없이 리플 달아주세요.
그럼 이만.휘릭~!

from michelin
0 0
로그인 후 추천 또는 비추천하실 수 있습니다.
포인트 5,044
가입일 :
2004-01-25 23:38:19
서명 :
미입력
자기소개 :
미입력

최신글이 없습니다.

최신글이 없습니다.

댓글목록 0

등록된 댓글이 없습니다.
전체 48 건 - 1 페이지