procedure TForm1.btn1Click(Sender: TObject);
var
InitValueList:TStringList;
i,j:Byte;
str,adata:string;
begin
InitValueList:=TStringList.Create;
InitValueList.Delimiter:=',';
InitValueList.DelimitedText :=edit1.Text;
i:=Length(StringReplace(edit1.text,#32,'',[rfReplaceAll])) div 2;
for j:= 1 to i do
begin
adata:=IntToHex(StrToInt('$'+Copy(adata,Length(adata)-1,2))+StrToInt('$'+InitValueList.Strings[i-1]),2);
end; Edit2.Text:=Copy(adata,Length(adata)-1,2); end;这是我自己写的一段,edit1输入'11 22',click之后报错
请大家指出我的错误.
谁有更好的算法,也请提供给我参考.
学习中,不胜感激
解决方案 »
- delphi 查找进程出错
- 在构造函数中为什么不能给属性赋值?
- SetHeight 不能重载,怎么动态设置高度啊
- 烦请各位兄弟姐妹进来看看,回者有分
- 用RICHED20.DLL开发语法加亮编辑器的朋友请进(此文档长期有效)?
- 如何复制一条记录
- 大家进来看看,有分
- ★★★★★★★★★★★★ 学了一年多的java总觉得这东西没有什么实际价值.不知道大家有什么看法! ★★★★★★★★★★
- 大家帮帮忙看看程序哪错了.急死了.
- 为什么delphi的控件这么难安装?
- 太孤单,没事吼吼
- 用dbnavigator的修改改了dbgrid的某一纪录的一个字段,但此记录的最后一个字段值是根据前面的字段值计算获得,如何作相应的修改?
这里adata开始时没有值,这句一定出异常。
我就是想求一组16进制数的累加和
比如 '11 22 33 44 55'
累加和为A5
uses
math;
procedure TForm1.Button4Click(Sender: TObject);
var
InitValueList:TStringList;
i:Byte;
arr:array of integer;
begin
InitValueList:=TStringList.Create;
InitValueList.Delimiter:=',';
InitValueList.DelimitedText :=edit1.Text;
setlength(arr,initvaluelist.Count);
for i:=0 to initvaluelist.Count-1 do
begin
arr[i]:=strtoint(trim(initvaluelist.Strings[i]));
end;
edit2.Text:=inttohex(sumint(arr),4);
end;
edit1中内容
11, 22, 33, 44, 55
var
InitValueList:TStringList;
i,j:Byte;
value:integer;
begin
InitValueList:=TStringList.Create;
InitValueList.Delimiter:=',';
InitValueList.DelimitedText :=edit1.Text;
i:=InitValueList.Count;
value:=0;
for j:= 0 to i-1 do
value:=value+StrToInt('$'+InitValueList.Strings[j]);
Edit2.Text:=Format('%x',[value]);
end;
11, 22, 33, 44, 55