한글 자음 모음 분리
const
HanBase = $AC00; //유니코드 3.0 에서의 시작 한글영역
HanLast = $D7AF; //유니코드 3.0 에서의 마지막 한글영역
ChoSungStr:WideString = 'ㄱㄲㄴㄷㄸㄹㅁㅂㅃㅅㅆㅇㅈㅉㅊㅋㅌㅍㅎ';
JungSungStr:WideString = 'ㅏㅐㅑㅒㅓㅔㅕㅖㅗㅘㅙㅚㅛㅜㅝㅞㅟㅠㅡㅢㅣ';
JongSungStr:WideString = ' ㄱㄲㄳㄴㄵㄶㄷㄹㄺㄻㄼㄽㄾㄿㅀㅁㅂㅄㅅㅆㅇㅈㅊㅋㅌㅍㅎ';
function JamoSplit(const Han: WideChar):WideString;
var
UniCode: Integer;
ChoSung, JungSung, JongSung: Integer;
begin
Result := '';
for UniCode := 1 to Length(ChoSungStr) do
begin
if ChoSungStr[UniCode] = Han then
begin
Result := Han;
Exit;
end;
end;
for UniCode := 1 to Length(JungSungStr) do
begin
if JungSungStr[UniCode] = Han then
begin
Result := 'ㅇ' + Han;
Exit;
end;
end;
UniCode := Integer(Han);
if (UniCode < HanBase) or (UniCode > HanLast) then Exit;
UniCode := UniCode - HanBase;
ChoSung := UniCode div (21 * 28);
UniCode := UniCode mod (21 * 28);
JungSung := UniCode div 28;
UniCode := UniCode mod 28;
JongSung := UniCode;
SetLength(Result, 3);
Result[1] := ChoSungStr[ChoSung+1];
Result[2] := JungSungStr[JungSung+1];
Result[3] := JongSungStr[JongSung+1];
end;
'Delphi > 프로시저-함수' 카테고리의 다른 글
주민등록번호 성인인증 (0) | 2024.05.14 |
---|---|
첫번째 영문을 대문자 변경 (0) | 2024.05.13 |
HEX 코드를 TColor 값으로 변환하여 반환 (0) | 2024.04.29 |
FindWindowEx로 찾지못하는 원도우 핸들구하기 (0) | 2024.03.23 |
실행파일 종료시 실행파일 삭제 (0) | 2024.03.11 |
댓글