一个字串在debug时,显示为:'字串A'#4#4#4,字串本身值为:字串A ,如何去掉后面的#4#4#4

homygod 2006-03-29 07:33:08
字符“字串A”用des 加密,再作相应解密处理时,得到“字串A---”,debug时,在degug窗口显示为:'字串A'#4#4#4 ,请教如何去掉后面的#4#4#4?
原字串后有时也会是#5#5#5或#6#6#6类似这种情况。

问题解决,后面分数一定奉上。请各路达人指点,多谢!
...全文
77 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
homygod 2006-03-30
  • 打赏
  • 举报
回复
多谢回复各位,这个问题终于解决了。
我还是说一下来拢去脉吧,我的字串是用java的des算法加密的,现在用delphi来解密。补位的方式不太一样,所以有这个问题。
我是这么解决的,
for I := 1 to length(StrResult) do
begin
if ord(StrResult[i])< 9 then
begin
strEndPos:=i;
break;
end;

end;

Result := copy(StrResult,1,strEndPos-1); {去除后面的补位}

注:StrResult是解密后的字串。

这样处理后,返回的是正确的字串。

每人分点分吧,别嫌少啊,笑纳~

gwolf 2006-03-29
  • 打赏
  • 举报
回复
copy(s,1,pos('#',s));
柯本 2006-03-29
  • 打赏
  • 举报
回复
最好能把程序贴出来
cuteant 2006-03-29
  • 打赏
  • 举报
回复
有一点需要注意,DES要求被加密的数据块必须是以64Bits(也就是8个字节)为单位的,
因此,对于不能被8整除的数据,应该在尾部加上填充信息(最好将数据的原始长度保存起
来)。
cuteant 2006-03-29
  • 打赏
  • 举报
回复
是不是你用的算法单元有问题或者你没有用对?
老之 2006-03-29
  • 打赏
  • 举报
回复
如果当作字符串处理,直接删掉倒数6个字符就行了
delete(s,length(s)-5,6);

16,742

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 语言基础/算法/系统设计
社区管理员
  • 语言基础/算法/系统设计社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧