지정한 문자열 길이만큼 문자열을 반환하는 함수

ASP/TIP 2009. 11. 27. 16:59
01.<%
02.    Function fnGetCutString(strString, intCutLen, strDiv)
03.        Dim intLen '// 문자열 길이
04.        Dim intByte '// byte 수
05.        Dim strCutString
06.        Dim strRes
07.        Dim strChar
08.        Dim intX
09.        intLen = 0
10.        intByte = 0
11.        strRes = ""
12.        intLen = Len(strString)
13. 
14.        For intX = 1 to intLen
15.            strChar = ""
16.            strCutString = Mid(strString, intX, 1)        '//    일단 1만큼 잘라서 strCutString에 저장한다.
17.            strChar = Asc(strCutString)        '//    아스키 코드값 읽어오기
18.            strChar = Left(strChar, 1)
19.            If strChar = "-" Then            '//    "-"이면 2바이트 문자임
20.                intByte = intByte + 2
21.            Else
22.                intByte = intByte + 1
23.            End If
24.            If intCutLen < intByte Then
25.                '// 현재 문자열 byte 수가 지정한 byte 수보다 크면 For 문을 빠져나간다.
26.                strRes = strRes & strDiv
27.                Exit For
28.            Else
29.                '// 현재 문자열 byte 수가 지정한 byte 수보다 작으면 strRes 에 잘라낸 문자열을 추가한다.
30.                strRes = strRes & strCutString
31.            End If
32.        Next
33.        fnGetCutString = strRes
34.    End Function
35. 
36.    '// 함수 사용 예제
37.    Dim strSubject
38.    strSubject = "소비자를 중심으로 소비자의 심리를 이해하고 마케팅을 하는 고객지향적 마케팅 기법"
39. 
40.    '// strSubject 변수에 지정된 문자열의 첫 40 byte 만 가져오고 문자열이 40byte 보다 크면 ".." 로 대체한다.
41.    Response.Write(fnGetCutString(strSubject, 40, ".."))
42. 
43.    '// "소비자를 중심으로 소비자의 심리를 이해하.." 가 화면에 출력된다.
44.%>
: