이 함수의 기능은 지정된 영어-중국어 혼합 문자열을 가로채서 표시 길이를 1로 유지하는 것입니다. 즉, 한자 하나를 영어 단어 두 개로 가로채는 것입니다. 설명: 이 함수의 기능은 지정된 영어-중국어 혼합 문자열을 가로채서 표시 길이를 1로 유지하는 것입니다. 즉, 한자 하나를 영어 단어 두 개로 가로채는 것입니다.
목적: 일반적으로 가로채는 문자열이 고르지 않게 삽입되는 것을 방지하기 위해 제목 표시 목록에 사용됩니다.
프로그램 코드
다음과 같이 코드 코드를 복사합니다.
'//처리할 A_strString 문자열
'//A_intLen은 영문자 수를 기준으로 합니다.
'//A_strAddString A_strString에 문자를 가로챌 때 다음과 같은 접미사가 추가된 경우..., 비어 있을 수 있습니다.
함수 CutString(byval A_strString,byval A_intLen,byval A_strAddString)
희미한 MM_objRe,MM_objMs,MM_objMh
희미한MM_strCut,MM_intLen
setMM_objRe=새 RegExp
MM_objRe.Global=true'전역 검색
MM_objRe.IgnoreCase=true'는 대소문자를 구분하지 않습니다.
MM_objRe.Pattern=[^/x00-/xff]
MM_intLen=A_intLen
len(A_strString)<=A_intLen이면
MM_strCut=A_strString
또 다른
MM_strCut=왼쪽(A_strString,MM_intLen)
MM_objMs=MM_objRe.execute(MM_strCut) 설정
MM_objMs.count<>MM_intLen이면
MM_objMs의 각 MM_objMh에 대해
MM_objMh.FirstIndex<MM_intLen이면
MM_intLen=MM_intLen-1
또 다른
종료
종료하면
다음
또 다른
MM_intLen=MM_intLen/2
종료하면
MM_strCut=왼쪽(A_strString,MM_intLen) & A_strAddString
종료하면
CutString=MM_strCut
setMM_objRe=아무것도 없음
함수 종료
이는 현재 인터넷에서 인기 있는 것과는 다릅니다. 정규식은 ANSI가 아닌 문자를 얻는 데 사용됩니다(여기서 기본 ANSI가 아닌 문자는 한자입니다. 편차가 있는 경우 목적을 달성하기 위해 정규식을 수정할 수 있습니다). . 먼저, 함수의 지정된 길이는 영어 문자 수에 따라 결정된다는 점에 유의하세요. 즉, 10으로 지정되는데, 이는 영어 10자, 한자 5자를 의미한다.
두 가지 최적화가 이루어졌습니다.
첫 번째 포인트: 지정된 길이의 문자를 직접 가져옵니다. 왜냐하면 모두 한자이거나 모두 영어이거나 가장 긴 문자는 전체 영어의 길이일 뿐이고 그 초과 문자는 절대적으로 제거된 문자이기 때문입니다.
두 번째 포인트: 정규식을 사용하여 범위 내의 한자를 찾고, 각 한자의 단어 수만 순회하므로 루프 수를 최소화할 수 있습니다.