질답게시판에 올라와 있는 내용을 정리해본겁니다.
무턱대고 사용할려다 다시 간단히 Function으로 정리해서 올립니다.
<!--CodeS-->
Function TFrm_main.ConvStr(V_Str:string):String;
var
S,SS,SAsc,SRtn : String;
Asc1,Asc2,i: integer;
begin
SS := '';
SAsc := '';
Asc1:= 0;
for i := 1 to Length(V_Str) do
begin
if ByteType(V_Str, i) = mbSingleByte then
begin
SRtn := SRtn + V_Str[i];
end
else if ByteType(V_Str, i) = mbLeadByte then
begin
SAsc := IntToStr(Ord(V_Str[i]));
Asc1 := Ord(V_Str[i]);
end
else
if ByteType(V_Str, i) = mbTrailByte then
begin
SAsc := SAsc + IntToStr(Ord(V_Str[i]));
Asc2 := Ord(V_Str[i]);
if (StrToInt(SAsc) >= 163161) and (StrToInt(SAsc) <= 163253) then
begin
SS := Chr(StrToInt(SAsc) - 163128);
SRtn := SRtn + SS;
end
else
begin
SRtn := SRtn + Chr(Asc1) + Chr(Asc2);
end;
SAsc := '';
end;
end;
ConvStr := SRtn;
end;
procedure TFrm_main.Button1Click(Sender: TObject);
begin
Edit2.Text := ConvStr(Edit1.Text);
end;
<!--CodeE-->