... ...
var
ch:array[0..300] of char;//ch可以取任意char类型的值
s:string;
begin
s:=inttostr(ord(p[i]))+','+s;//这样做可以达到我的目的,但这个字符串太长了,我想让s的值只包括A-Z或a-z中的字符,这样‘,’(为了能够做反过程而加的)可以去掉,而且象65,66这样的都可以只用一个字符串表示了
end;我的目的是:把一个char型数组转成字符串存入数据库,再从数据库把存入的字符串还原成char型数组,字符串的长度越短越好!

解决方案 »

  1.   

    inttostr(ord(p[i]))怎么可能只包括A-Z,a-z呢??????
    ‘,’不需要加啊。对于一个字符的Ascii码大于0小于255,所以完全可以用两位字符表示。
    00~FF。由于你只能包括A-Z,a-z,所以程序需要做一个对应,0~a,1~b,……9~j,这样就可以了。
    s:=inttohex(ord(p[i]),2)+s;然后for i:=1 to length(s) do
       begin
         替换所有0~9这个字符
       end;