📄 hz编码与解码 (2001年4月19日).txt
字号:
HZ编码与解码 (2001年4月19日)
网友更新 分类:数据库 作者:Icebird 推荐:Icebird 阅读次数:261
(http://www.codesky.net)
--------------------------------------------------------------------------------
{HZ编码}
function HZEncode(s: string): string;
var
i: Integer;
Flag: Integer;
begin
Result := '';
Flag := 0;
for i := 1 to Length(s) do
begin
if Ord(s[i]) > 127 then
Inc(Flag)
else
Flag := -Flag;
if Flag > 0 then
if Flag = 1 then
begin
Result := Result + '~{';
Result := Result + Chr(Ord(s[i]) - 128);
end
else
Result := Result + Chr(Ord(s[i]) - 128)
else
if Flag < 0 then
begin
Result := Result + '~}';
Result := Result + s[i];
Flag := 0;
end
else
Result := Result + s[i];
end;
if Flag > 0 then
Result := Result + '~}';
end;
{HZ编码}
{HZ解码}
function HZDecode(s: string): string;
var
i: Integer;
Flag: Integer;
Skip: Integer;
begin
Flag := 0;
Skip := 0;
Result := '';
for i := 1 to Length(s) do
begin
if (s[i] = '~') then
begin
if (s[i + 1] = '{') and (Flag = 0) then
begin
Flag := 1;
Skip := Skip + 2;
end;
if (s[i + 1] = '}') and (Flag = 1) then
begin
Flag := 0;
Skip := Skip + 2;
end;
end;
if Skip > 0 then
Dec(Skip)
else
if Flag = 0 then
Result := Result + s[i]
else
Result := Result + Chr(Ord(s[i]) + 128);
end;
end;
{HZ解码}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -