好象chr把支持7f以上的呀 举个列子: tmpstrA:string; tmpstrB:string; e:char;tmpstrA='E231323334E3'; while i < j do begin c:=tmpstrA[i]+tmpstrA[i+1]; e:=chr(byte(strtoint('$'+c))); tmpstrB:=tmpstrB+e inc(i,2); end; 为什么最后tmpstrB返回的不对,没有包括E2对应的字符 大家帮忙啊
e:WChar;e:=WChar(Word(strtoint('$'+c)));
To ehom兄 好象用wchar不太好 我试过了 大家试试我的这段程序,很奇怪我发现不是好象是第一个E2不能复值给tmpstrB但最后一个E3其实可以的 高不懂
不是不支持,而是E2和31对应的字符不存在,被tmpstrB:=tmpstrB+e合并分解处理了。用下面的方法好了:var tmpstrA, T: string; S : Array of Char; begin tmpstrA := 'E231323334E3'; while tmpstrA <> '' do begin T := '$' + Copy(tmpstrA, 1, 2); Delete(tmpstrA, 1, 2); SetLength(S, Length(S) + 1); S[Length(S)-1] := Chr(StrToInt(T)); end; ShowMessage(S[0]); end;————————————————————————————————— 宠辱不惊,看庭前花开花落,去留无意;毁誉由人,望天上云卷云舒,聚散任风。 —————————————————————————————————
宠辱不惊,看庭前花开花落,去留无意;毁誉由人,望天上云卷云舒,聚散任风。
—————————————————————————————————
举个列子:
tmpstrA:string;
tmpstrB:string;
e:char;tmpstrA='E231323334E3';
while i < j do
begin
c:=tmpstrA[i]+tmpstrA[i+1];
e:=chr(byte(strtoint('$'+c)));
tmpstrB:=tmpstrB+e
inc(i,2);
end;
为什么最后tmpstrB返回的不对,没有包括E2对应的字符
大家帮忙啊
好象用wchar不太好
我试过了
大家试试我的这段程序,很奇怪我发现不是好象是第一个E2不能复值给tmpstrB但最后一个E3其实可以的
高不懂
tmpstrA, T: string;
S : Array of Char;
begin
tmpstrA := 'E231323334E3';
while tmpstrA <> '' do
begin
T := '$' + Copy(tmpstrA, 1, 2);
Delete(tmpstrA, 1, 2);
SetLength(S, Length(S) + 1);
S[Length(S)-1] := Chr(StrToInt(T));
end;
ShowMessage(S[0]);
end;—————————————————————————————————
宠辱不惊,看庭前花开花落,去留无意;毁誉由人,望天上云卷云舒,聚散任风。
—————————————————————————————————
ASCII码对应的字符不是0-255,即0-ffh吗?
ord函数就能返回0-255的所有十进制的ASCII码字符
难到就不能反过来了吗?为什么。。