<%
Function fnGetCutString(strString, intCutLen, strDiv)
Dim intLen '// 문자열 길이
Dim intByte '// byte 수
Dim strCutString
Dim strRes
Dim strChar
Dim intX
intLen = 0
intByte = 0
strRes = ""
intLen = Len(strString)
For intX = 1 to intLen
strChar = ""
strCutString = Mid(strString, intX, 1) '// 일단 1만큼 잘라서 strCutString에 저장한다.
strChar = Asc(strCutString) '// 아스키 코드값 읽어오기
strChar = Left(strChar, 1)
If strChar = "-" Then '// "-"이면 2바이트 문자임
intByte = intByte + 2
Else
intByte = intByte + 1
End If
If intCutLen < intByte Then
'// 현재 문자열 byte 수가 지정한 byte 수보다 크면 For 문을 빠져나간다.
strRes = strRes & strDiv
Exit For
Else
'// 현재 문자열 byte 수가 지정한 byte 수보다 작으면 strRes 에 잘라낸 문자열을 추가한다.
strRes = strRes & strCutString
End If
Next
fnGetCutString = strRes
End Function
'// 함수 사용 예제
Dim strSubject
strSubject = "소비자를 중심으로 소비자의 심리를 이해하고 마케팅을 하는 고객지향적 마케팅 기법"
'// strSubject 변수에 지정된 문자열의 첫 40 byte 만 가져오고 문자열이 40byte 보다 크면 ".." 로 대체한다.
Response.Write(fnGetCutString(strSubject, 40, ".."))
'// "소비자를 중심으로 소비자의 심리를 이해하.." 가 화면에 출력된다.
%>