捐赠 | 广告 | 注册 | 发布 | 上传 | 关于我们    
  沪ICP备05001939号 DELPHI盒子 | 盒子论坛 | 盒子文章 | 盒子问答悬赏 | 最新更新 | 论坛检索 | 下载中心 | 高级搜索    
  精品专区 | 繁體中文 | 奖励公告栏 | 直通车账号登陆 | 关闭GOOGLE广告 | 临时留言    
盒子资源分类
全部展开 - 全部合拢
uuencode,DELPHI实现,练习位运算的作品
关键字:uue,uuencode,编码
来 自:原创
平 台:Win2k/XP/NT,Win2003 下载所需:0 火柴
深浅度:初级 完成时间:2008/6/13
发布者:hsgrass 发布时间:2008/6/13
编辑器:DELPHI7 语  种:简体中文
分 类:其他 下载浏览:949/10976
加入到我的收藏
下载错误报错
登陆以后才能下载
 用户名:
 密 码:
自动登陆(30天有效)
图片如果打不开,说明流量不够了,请稍候下载……
uuencode是以前unix下常用编码方式应用于UUCP(unix to unix copy),通过串行通讯传 
输二进制文件.base64属于MIME(多用途国际互联网 
邮件扩展)编码,与uuencode不是同一个范畴的,MIME主要应用于邮件,Uuencode主要应用 
在邮件和新闻组. 
uuencode的开头是: 
begin <模式> <文件名> 
<数据> 
end 
编码算法为不断地用3个字节数据列成一组(不足3个字节以零补齐)然后 此24位数据分 
为4组,每组6位,再将得到的6位二进制数映射到ASCII码32~95之间的字符,而每行以M 开头(表示32+45),60个字符一行(包括”M”),最后一行以32+N 的ASCII字符开头,N 为最后一行编码的输入字节数.编码以一个只含一个空格的一行和只含”end”的一行结束. 
从前一部分看和base64没有什么区别(关于base64的编码和解码请参见http://www.csdn.net/develop/read_article.asp?id=8843),都是将3个字符换成4个字符,不同的是base64由自己的base64码表,而uuencode是直接使用ascii码做码表.
Google
 
本站原创作品,未经作者许可,严禁任何方式转载;转载作品,如果侵犯了您的权益,请联系我们
龙脉加密锁 15元起 Grid++Report 报表 申请支付@网
 相关文章
没有相关文章
相关评论
共有评论4条 当前显示最后4条评论
senfore 2008/6/16 20:09:45
是否有解码算法,我将你的函数改写了一下,可以直接编码String。

var
  mStream: TMemoryStream;
  Strings: TStringList;
  buf: array[1..45] of byte;
  b2: array[1..4] of byte;
  a, b, c: byte;
  i, k: integer;
  strTmp, data: AnsiString;
begin
  result := '';
  data := '';
  //result := 'begin 644 ' + #13#10;
  mStream := TMemoryStream.Create;
  Strings := TStringList.Create;
  try
    Strings.Text := S;
    Strings.SaveToStream(mStream);
    mStream.Seek(0,soBeginning);
    FillChar(buf, length(buf), 0);    
    while mStream.Read(buf, length(buf)) > 0 do
    begin
      i := 1; strTmp := '';
      while i <= Length(buf) do
      begin
        a := Ord(buf[i]); inc(i);
        b := Ord(buf[i]); inc(i);
        c := Ord(buf[i]); inc(i);
        b2[1] := a shr 2;
        b2[2] := ((a and 3) shl 4) or (b shr 4);
        b2[3] := ((b and 15) shl 2) or (c shr 6);
        b2[4] := c and 63;
        for k := 1 to Length(b2) do
          strTmp := strTmp + chr(b2[k] + 32);
      end;
      data := data + 'M' + strTmp + #13#10;
    end;
  finally
    mStream.free;
    Strings.Free;
  end;
  Result:=data;
  //result := result + data + chr(96) + #10'end';
end;
senfore 2008/6/16 20:10:42
function UuEncode(const S: AnsiString): AnsiString;
hsgrass 2008/6/17 14:45:04
我的主要目的是熟悉一下位运算和可以将二进制的文件贴到BBS等地方
解码思想在README里面有说明,RAR,ZIP也支持解码,有兴趣可以写一下,
我以前找过,也有解码的DELPHI源码.
谢谢你的关注
huhuc 2008/6/19 11:34:30
哈,我在这里发现了一个http://www.torry.net/quicksearchd.php?String=UUCode&Title=Yes,ICS里面也有的。
不管怎么样,支持楼主自己实现。
我要发表评论 查看全部评论
 
  DELPHI盒子版权所有 1999-2023 V4.01 粤ICP备10103342号-1 更新RSS列表