CVcode 의 간단 한 변환 확장:GBK 와 Big 5 변환
그러나 CVcode 에 서 는 GB 2312 와 BIG 5 의 전환 일 뿐 GBK 입력 법 이 유행 하 는 오늘날 GB 2312 는 분명히 부족 하 다.또한 BIG 5 문자 집합 은 GB 2312 보다 훨씬 크기 때문에 CVcode 를 확장 하여 GBK 와 BIG 5 변환 기능 을 가지 도록 하 는 것 이 필수 적 이다.
GBK 의 문자 범 위 는 다음 과 같 습 니 다.
이 중 1 과 2 가 해당 하 는 GB 2312 문자 집합 이다.
어떻게 하면 CVcode 가 GBK 를 지원 할 수 있 는 지 세 가지 문제 가 있 습 니 다. 1.GB 사이즈 판단 2.문자 순 서 를 계산한다 3.기 존 메타 와 호 환
첫 번 째 문 제 는 다음 과 같이 IsGB 를 수정 해 야 합 니 다.
GBK
<
----------------------------------------------
●GBK/1:GB2312 : A1~A9 || A1~FE
●GBK/2:GB2312 : B0~F7 || A1~FE
●GBK/3: : 81~A0 || 40~FE
●GBK/4: : AA~FE || 40~A0
●GBK/5: : A8~A9 || 40~A0
두 번 째 는 순 서 를 계산 하고 기 존의 메타 와 호 환 해 야 한다-사실은 호 환 도 주로 순서 에 있다.
function isGB(value: string): Boolean;
Var
mHigh, mLow : integer;
begin
if (length(value)>=2) then
begin
mHigh := ord(value[1]);
mLow := ord(value[2]);
Result := False;
//●GBK/1:GB2312 : A1~A9 || A1~FE
if (mHigh in [$A1..$A9]) and (mLow in [$A1..$FE]) then Result := True;
//●GBK/2:GB2312 : B0~F7 || A1~FE
if (mHigh in [$B0..$F7]) and (mLow in [$A1..$FE]) then Result := True;
//●GBK/3: : 81~A0 || 40~FE
if (mHigh in [$81..$A0]) and (mLow in [$40..$FE]) then Result := True;
//●GBK/4: : AA~FE || 40~A0
if (mHigh in [$AA..$FE]) and (mLow in [$40..$A0]) then Result := True;
//●GBK/5: : A8~A9 || 40~A0
if (mHigh in [$A8..$A9]) and (mLow in [$40..$A0]) then Result := True;
end
else
Result := true;
{ // , GB2312
if (length(value)>=2) then
begin
if (value[1] <= #161) and (value[1] >= #247) then
Result := false
else
if (value[2] <= #161) and (value[2] >= #254) then
Result := false
else
Result := true
end
else
Result := true;
}
end;
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Delphi 목마 자기 복제법 구현목마가 자기 복사를 실현하는 원리는 프로그램이 실행될 때 먼저 자신이 특정 디렉터리에 있는지 확인하고 그렇지 않으면 계속 실행하며 그렇지 않으면 특정 디렉터리에 복사한 다음에 새로운 프로그램을 실행하고 낡은 프로그램...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.