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

ASP/TIP 2009. 11. 27. 16:59
<%
    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, ".."))

    '// "소비자를 중심으로 소비자의 심리를 이해하.." 가 화면에 출력된다.
%>
: