⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 hz编码与解码 (2001年4月19日).txt

📁 delphi 编程技巧
💻 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 + -