关于Delphi的字节级操作问题 找零售记账软件
库存管理软件版1楼: procedure TForm1.Button1Click(Sender: TObject);
var
i, x1: Integer;
sSource, sCrypt: string;
a: array[0..4] of Byte;
x: PChar;
begin
sSource := Edit1.Text;
for i := 0 to Length(sSource) do
begin
x1 := ord(sSource[i]); //or Integer
sCrypt := sCrypt + Chr(x1);
end;
Edit2.Text := sCrypt;
end;
结果sSource 初始化为''abcdefg'', 调试时sCrypt的值为#0''abcdefg'',但是到了Edit2.Text 里面就没有值,返回一个空字符串,请问是什么原因?如何解决?
从1开始读,for i := 1 to Length(sSource) do 这样
var
i, x1: Integer;
sSource, sCrypt: string;
a: array[0..4] of Byte;
x: PChar;
begin
sSource := Edit1.Text;
for i := 0 to Length(sSource) do
begin
x1 := ord(sSource[i]); //or Integer
sCrypt := sCrypt + Chr(x1);
end;
Edit2.Text := sCrypt;
end;
结果sSource 初始化为''abcdefg'', 调试时sCrypt的值为#0''abcdefg'',但是到了Edit2.Text 里面就没有值,返回一个空字符串,请问是什么原因?如何解决?
2楼: 字符串不能从0开始,i:=1;
你试试!! 如零售记账软件
3楼: 应该是
for i:=1 to Length(sSource) do
begin
x1 := ord(sSource[i]); //or Integer
sCrypt := sCrypt + Chr(x1);
end;
#0 是字符串的最后一个字符,遇到它,后面的字符就不再取了。
4楼: 同意以上二人的观点,就是这样的。嘿嘿。。
5楼: 就是 rxj-2002 说的
字符串的 0 位是指字符串的长度,Delphi2006里这样写会报错
从1开始读,for i := 1 to Length(sSource) do 这样
6楼: 谢谢各位帮忙