+ -
当前位置:首页 → 问答吧 → 单个输出char数组的值有值,转为pchar输出为空

单个输出char数组的值有值,转为pchar输出为空

时间:2011-12-13

来源:互联网

procedure Tform1.encode();
var
  i:integer;
  j:integer;
begin
//url解密 (加密格式:将0-9转换为a-j) 解密时将a-j转换为0-9
  SetLength( arrChar , length(urlConfig.text)) ;
  for i:=0 to length(urlConfig.text)-1 do
  begin
  for j:=0 to 9 do
  begin
  if urlConfig.text[i]=num[j] then
  begin
  arrChar[i]:=chr(j);
  break;
  end;
  end;
  arrChar[i]:=urlConfig.text[i];
  //showmessage(arrChar[i]);
  end;
  //res := Copy(PChar(@arrChar[0]), 1, Length(arrChar));

  showmessage(pChar(@arrChar[0]));
end;

作者: laiwenti   发布时间: 2011-12-13

大哥们来看看啊

作者: laiwenti   发布时间: 2011-12-13

这里没人来啊、、、、、、、、、啊

作者: laiwenti   发布时间: 2011-12-13

j 是 0..9
chr(j) 就是 0..9 的ASCII码,并不是a..j

作者: chhrsas   发布时间: 2011-12-13

引用 3 楼 chhrsas 的回复:

j 是 0..9
chr(j) 就是 0..9 的ASCII码,并不是a..j

那么要怎样写呢 直接写肯定是j肯定是不行的

还有最后输出的是空的 是为什么啊

作者: laiwenti   发布时间: 2011-12-13

var//全局变量
  urlConfig:TStringlist;
  num: array[0..9] of string = ('a','b','c','d','e','f','g','h','i','j');
  arrChar: array of Char;
  res:string;

作者: laiwenti   发布时间: 2011-12-13

1.
urlConfig.text[0]并没有值,循环要从1开始到length(urlConfig.text)

2.
循环体内的arrChar[i]:=chr(j);无用
后面这一句arrChar[i]:=urlConfig.text[i];都把内容改写了

3.
实在不清楚你要实现什么

作者: kaikai_kk   发布时间: 2011-12-13