var
i,index:integer;
ts:Tstringlist;
s:string; ts:=Tstringlist.create; i:=0;
while pos('#',CurrentWomanStr)<>0) do
begin
index:=pos('#',CurrentWomanStr);
ts.add(copy(CurrentWomanStr,1,index-1));
i:=i+1;
delete(CurrentWomanStr,1,index);
end;
FormJSMain.EdtArchiveID.Text:=ts[0];
FormJSMain.EdtAddress.Text:=ts[1];
FormJSMain.EdtExamWomanNo.Text:=ts[2];
FormJSMain.EdtID.Text:=ts[3];
FormJSMain.CmbHomeType.Text:=ts[4];
FormJSMain.EdtWomanName.Text:=ts[5];
FormJSMain.EdtWomanChuShengNianYue.Text:=ts[6];
//FormJSMain.edtwomanhukou.Text:=ts[7];
// FormJSMain.edtwomanhukouxinzhi.Text:=ts[8];
FormJSMain.EdtWomanMinZu.Text:=ts[9];
FormJSMain.EdtWomanZhiYe.Text:=ts[10];
FormJSMain.EdtWomanDangYuan.Text:=ts[11];
FormJSMain.EdtWomanXueLi.Text:=ts[12];
FormJSMain.CmbWomanHunYinZhuangKuang.Text:=ts[13];
FormJSMain.CmbWomanJiangKangZhuangKuang.Text:=ts[14];
FormJSMain.EdtManName.Text:=ts[15];
FormJSMain.EdtManChuShengNianYue.Text:=ts[16];
//---------------------------------------------------
//FormJSMain.edtmanhukou.Text:=ts[17];
// FormJSMain.edtmanhukouxinzhi.Text:=ts[18];
FormJSMain.EdtManMinZu.Text:=ts[19];
FormJSMain.EdtManZhiYe.Text:=ts[20];
FormJSMain.EdtManDangYuan.Text:=ts[21];
FormJSMain.EdtManXueLi.Text:=ts[22];
FormJSMain.CmbManHunYinZhuangKuang .Text:=ts[23];
FormJSMain.CmbManJiangKangZhuangKuang.Text:=ts[24];FormJSMain.EdtSon.Text:=ts[25];
FormJSMain.EdtDaughter.Text:=ts[26];
FormJSMain.EdtChuChaoNianLing.Text:=ts[27];
FormJSMain.EdtYueJingZhouQi.Text:=ts[28];
FormJSMain.EdtYueJingChiXuShiJian.Text:=ts[29]; FormJSMain.CmbYueJingLiang.Text:=ts[30];
FormJSMain.CmbYueJingTong.Text:=ts[31];FormJSMain.dtMoCiYueJingShiJian.DateTime:=StrToDateTime(ts[32]);
FormJSMain.EdtChuChanNianLing.Text:=ts[33];
FormJSMain.EdtYunCi.Text:=ts[34];
FormJSMain.EdtZuYueChan.Text:=ts[35];
FormJSMain.EdtNanChan.Text:=ts[36];
FormJSMain.EdtZaoChan.Text:=ts[37];
FormJSMain.EdtZiRanLiuChan.Text:=ts[38];
FormJSMain.EdtRenLiu.Text:=ts[39];
//--------------
FormJSMain.EdtYinChan.Text:=ts[40];FormJSMain.CmbXianYongFangFa.Text:=ts[41];
FormJSMain.EdtKaiShiShiJian.Text:=ts[42];
FormJSMain.EdtFuZuoYong.Text:=ts[43]; FormJSMain.CmbJiWangBingShi.Text:=ts[44];
FormJSMain.EdtJiWangBingShiShuoMing.Text:=ts[45]; FormJSMain.edtphone.Text:=ts[46];
FormJSMain.edtphone2.Text:=ts[47];
FormJSMain.EdtICCardID.Text:=ts[48];
// FormJSMain.edtfingerprint.Text:=ts[50];
// FormJSMain.edtphotoname.Text:=ts[51];上面这段,当CurrentWomanStr内容少就不出什么错,但多了,就很容易出错..
请问,这是什么错误,是我的ts太长了?
我怕是ts不够长度,我改成了,加了个ts1,
ts:=Tstringlist.create;
ts1:=Tstringlist.create; i:=0;
while ( (i<40) and (pos('#',CurrentWomanStr)<>0) ) do
begin
index:=pos('#',CurrentWomanStr);
ts.add(copy(CurrentWomanStr,1,index-1));
i:=i+1;
delete(CurrentWomanStr,1,index);
end; while pos('#',CurrentWomanStr)<>0 do
begin
index:=pos('#',CurrentWomanStr);
ts1.add(copy(CurrentWomanStr,1,index-1));
i:=i+1;
delete(CurrentWomanStr,1,index);
end;
FormJSMain.EdtArchiveID.Text:=ts[0];
FormJSMain.EdtAddress.Text:=ts[1];
FormJSMain.EdtExamWomanNo.Text:=ts[2];
FormJSMain.EdtID.Text:=ts[3];
FormJSMain.CmbHomeType.Text:=ts[4];
FormJSMain.EdtWomanName.Text:=ts[5];
FormJSMain.EdtWomanChuShengNianYue.Text:=ts[6];
//FormJSMain.edtwomanhukou.Text:=ts[7];
// FormJSMain.edtwomanhukouxinzhi.Text:=ts[8];
FormJSMain.EdtWomanMinZu.Text:=ts[9];
FormJSMain.EdtWomanZhiYe.Text:=ts[10];
FormJSMain.EdtWomanDangYuan.Text:=ts[11];
FormJSMain.EdtWomanXueLi.Text:=ts[12];
FormJSMain.CmbWomanHunYinZhuangKuang.Text:=ts[13];
FormJSMain.CmbWomanJiangKangZhuangKuang.Text:=ts[14];
FormJSMain.EdtManName.Text:=ts[15];
FormJSMain.EdtManChuShengNianYue.Text:=ts[16];
//---------------------------------------------------
//FormJSMain.edtmanhukou.Text:=ts[17];
// FormJSMain.edtmanhukouxinzhi.Text:=ts[18];
FormJSMain.EdtManMinZu.Text:=ts[19];
FormJSMain.EdtManZhiYe.Text:=ts[20];
FormJSMain.EdtManDangYuan.Text:=ts[21];
FormJSMain.EdtManXueLi.Text:=ts[22];
FormJSMain.CmbManHunYinZhuangKuang .Text:=ts[23];
FormJSMain.CmbManJiangKangZhuangKuang.Text:=ts[24];FormJSMain.EdtSon.Text:=ts[25];
FormJSMain.EdtDaughter.Text:=ts[26];
FormJSMain.EdtChuChaoNianLing.Text:=ts[27];
FormJSMain.EdtYueJingZhouQi.Text:=ts[28];
FormJSMain.EdtYueJingChiXuShiJian.Text:=ts[29]; FormJSMain.CmbYueJingLiang.Text:=ts[30];
FormJSMain.CmbYueJingTong.Text:=ts[31];FormJSMain.dtMoCiYueJingShiJian.DateTime:=StrToDateTime(ts[32]);
FormJSMain.EdtChuChanNianLing.Text:=ts[33];
FormJSMain.EdtYunCi.Text:=ts[34];
FormJSMain.EdtZuYueChan.Text:=ts[35];
FormJSMain.EdtNanChan.Text:=ts[36];
FormJSMain.EdtZaoChan.Text:=ts[37];
FormJSMain.EdtZiRanLiuChan.Text:=ts[38];
FormJSMain.EdtRenLiu.Text:=ts[39];
//--------------
FormJSMain.EdtYinChan.Text:=ts1[0];FormJSMain.CmbXianYongFangFa.Text:=ts1[1];
FormJSMain.EdtKaiShiShiJian.Text:=ts1[2];
FormJSMain.EdtFuZuoYong.Text:=ts1[3]; FormJSMain.CmbJiWangBingShi.Text:=ts1[4];
FormJSMain.EdtJiWangBingShiShuoMing.Text:=ts1[5]; FormJSMain.edtphone.Text:=ts1[6];
FormJSMain.edtphone2.Text:=ts1[7];
FormJSMain.EdtICCardID.Text:=ts1[8];
// FormJSMain.edtfingerprint.Text:=ts[49];
// FormJSMain.edtphotoname.Text:=ts[50];结果还是EStringListError:list index out of bands(6),,,,,怎么回事呢?
i,index:integer;
ts:Tstringlist;
s:string; ts:=Tstringlist.create; i:=0;
while pos('#',CurrentWomanStr)<>0) do
begin
index:=pos('#',CurrentWomanStr);
ts.add(copy(CurrentWomanStr,1,index-1));
i:=i+1;
delete(CurrentWomanStr,1,index);
end;
FormJSMain.EdtArchiveID.Text:=ts[0];
FormJSMain.EdtAddress.Text:=ts[1];
FormJSMain.EdtExamWomanNo.Text:=ts[2];
FormJSMain.EdtID.Text:=ts[3];
FormJSMain.CmbHomeType.Text:=ts[4];
FormJSMain.EdtWomanName.Text:=ts[5];
FormJSMain.EdtWomanChuShengNianYue.Text:=ts[6];
//FormJSMain.edtwomanhukou.Text:=ts[7];
// FormJSMain.edtwomanhukouxinzhi.Text:=ts[8];
FormJSMain.EdtWomanMinZu.Text:=ts[9];
FormJSMain.EdtWomanZhiYe.Text:=ts[10];
FormJSMain.EdtWomanDangYuan.Text:=ts[11];
FormJSMain.EdtWomanXueLi.Text:=ts[12];
FormJSMain.CmbWomanHunYinZhuangKuang.Text:=ts[13];
FormJSMain.CmbWomanJiangKangZhuangKuang.Text:=ts[14];
FormJSMain.EdtManName.Text:=ts[15];
FormJSMain.EdtManChuShengNianYue.Text:=ts[16];
//---------------------------------------------------
//FormJSMain.edtmanhukou.Text:=ts[17];
// FormJSMain.edtmanhukouxinzhi.Text:=ts[18];
FormJSMain.EdtManMinZu.Text:=ts[19];
FormJSMain.EdtManZhiYe.Text:=ts[20];
FormJSMain.EdtManDangYuan.Text:=ts[21];
FormJSMain.EdtManXueLi.Text:=ts[22];
FormJSMain.CmbManHunYinZhuangKuang .Text:=ts[23];
FormJSMain.CmbManJiangKangZhuangKuang.Text:=ts[24];FormJSMain.EdtSon.Text:=ts[25];
FormJSMain.EdtDaughter.Text:=ts[26];
FormJSMain.EdtChuChaoNianLing.Text:=ts[27];
FormJSMain.EdtYueJingZhouQi.Text:=ts[28];
FormJSMain.EdtYueJingChiXuShiJian.Text:=ts[29]; FormJSMain.CmbYueJingLiang.Text:=ts[30];
FormJSMain.CmbYueJingTong.Text:=ts[31];FormJSMain.dtMoCiYueJingShiJian.DateTime:=StrToDateTime(ts[32]);
FormJSMain.EdtChuChanNianLing.Text:=ts[33];
FormJSMain.EdtYunCi.Text:=ts[34];
FormJSMain.EdtZuYueChan.Text:=ts[35];
FormJSMain.EdtNanChan.Text:=ts[36];
FormJSMain.EdtZaoChan.Text:=ts[37];
FormJSMain.EdtZiRanLiuChan.Text:=ts[38];
FormJSMain.EdtRenLiu.Text:=ts[39];
//--------------
FormJSMain.EdtYinChan.Text:=ts[40];FormJSMain.CmbXianYongFangFa.Text:=ts[41];
FormJSMain.EdtKaiShiShiJian.Text:=ts[42];
FormJSMain.EdtFuZuoYong.Text:=ts[43]; FormJSMain.CmbJiWangBingShi.Text:=ts[44];
FormJSMain.EdtJiWangBingShiShuoMing.Text:=ts[45]; FormJSMain.edtphone.Text:=ts[46];
FormJSMain.edtphone2.Text:=ts[47];
FormJSMain.EdtICCardID.Text:=ts[48];
// FormJSMain.edtfingerprint.Text:=ts[50];
// FormJSMain.edtphotoname.Text:=ts[51];上面这段,当CurrentWomanStr内容少就不出什么错,但多了,就很容易出错..
请问,这是什么错误,是我的ts太长了?
我怕是ts不够长度,我改成了,加了个ts1,
ts:=Tstringlist.create;
ts1:=Tstringlist.create; i:=0;
while ( (i<40) and (pos('#',CurrentWomanStr)<>0) ) do
begin
index:=pos('#',CurrentWomanStr);
ts.add(copy(CurrentWomanStr,1,index-1));
i:=i+1;
delete(CurrentWomanStr,1,index);
end; while pos('#',CurrentWomanStr)<>0 do
begin
index:=pos('#',CurrentWomanStr);
ts1.add(copy(CurrentWomanStr,1,index-1));
i:=i+1;
delete(CurrentWomanStr,1,index);
end;
FormJSMain.EdtArchiveID.Text:=ts[0];
FormJSMain.EdtAddress.Text:=ts[1];
FormJSMain.EdtExamWomanNo.Text:=ts[2];
FormJSMain.EdtID.Text:=ts[3];
FormJSMain.CmbHomeType.Text:=ts[4];
FormJSMain.EdtWomanName.Text:=ts[5];
FormJSMain.EdtWomanChuShengNianYue.Text:=ts[6];
//FormJSMain.edtwomanhukou.Text:=ts[7];
// FormJSMain.edtwomanhukouxinzhi.Text:=ts[8];
FormJSMain.EdtWomanMinZu.Text:=ts[9];
FormJSMain.EdtWomanZhiYe.Text:=ts[10];
FormJSMain.EdtWomanDangYuan.Text:=ts[11];
FormJSMain.EdtWomanXueLi.Text:=ts[12];
FormJSMain.CmbWomanHunYinZhuangKuang.Text:=ts[13];
FormJSMain.CmbWomanJiangKangZhuangKuang.Text:=ts[14];
FormJSMain.EdtManName.Text:=ts[15];
FormJSMain.EdtManChuShengNianYue.Text:=ts[16];
//---------------------------------------------------
//FormJSMain.edtmanhukou.Text:=ts[17];
// FormJSMain.edtmanhukouxinzhi.Text:=ts[18];
FormJSMain.EdtManMinZu.Text:=ts[19];
FormJSMain.EdtManZhiYe.Text:=ts[20];
FormJSMain.EdtManDangYuan.Text:=ts[21];
FormJSMain.EdtManXueLi.Text:=ts[22];
FormJSMain.CmbManHunYinZhuangKuang .Text:=ts[23];
FormJSMain.CmbManJiangKangZhuangKuang.Text:=ts[24];FormJSMain.EdtSon.Text:=ts[25];
FormJSMain.EdtDaughter.Text:=ts[26];
FormJSMain.EdtChuChaoNianLing.Text:=ts[27];
FormJSMain.EdtYueJingZhouQi.Text:=ts[28];
FormJSMain.EdtYueJingChiXuShiJian.Text:=ts[29]; FormJSMain.CmbYueJingLiang.Text:=ts[30];
FormJSMain.CmbYueJingTong.Text:=ts[31];FormJSMain.dtMoCiYueJingShiJian.DateTime:=StrToDateTime(ts[32]);
FormJSMain.EdtChuChanNianLing.Text:=ts[33];
FormJSMain.EdtYunCi.Text:=ts[34];
FormJSMain.EdtZuYueChan.Text:=ts[35];
FormJSMain.EdtNanChan.Text:=ts[36];
FormJSMain.EdtZaoChan.Text:=ts[37];
FormJSMain.EdtZiRanLiuChan.Text:=ts[38];
FormJSMain.EdtRenLiu.Text:=ts[39];
//--------------
FormJSMain.EdtYinChan.Text:=ts1[0];FormJSMain.CmbXianYongFangFa.Text:=ts1[1];
FormJSMain.EdtKaiShiShiJian.Text:=ts1[2];
FormJSMain.EdtFuZuoYong.Text:=ts1[3]; FormJSMain.CmbJiWangBingShi.Text:=ts1[4];
FormJSMain.EdtJiWangBingShiShuoMing.Text:=ts1[5]; FormJSMain.edtphone.Text:=ts1[6];
FormJSMain.edtphone2.Text:=ts1[7];
FormJSMain.EdtICCardID.Text:=ts1[8];
// FormJSMain.edtfingerprint.Text:=ts[49];
// FormJSMain.edtphotoname.Text:=ts[50];结果还是EStringListError:list index out of bands(6),,,,,怎么回事呢?
解决方案 »
- IBExpert有没有象MSSQL的跟踪调试器一样的功能??
- ADOQuery怎么移动记录指针?
- 系统为b/s结构,用fastreport生成一个报表,在一个主项数据上连多个数据源(且无法关联),报表如何sum(字段)?详情请进。。。
- 结合Delphi用RaveReports制作报表遇到的问题(急急急)
- 在两个表连接查询时为什么总报错:“Table is read only”?
- (200分请你来拿!)用SQL Server7从远程机backup过的文件要恢复到本地机应该注意哪些问题?
- 在局域网中怎样传一个文件?
- 请教各位高手,急急急!
- 关于ACCESS的显示!!
- 疑难问题,抓去网页内容乱吗
- 写了个检查IP是否合法IP的东东,要的留下Email,写的更好的不要骂我
- 如何屏蔽chart中鼠标的动作。
list index out of bands(X)这个错误.同时我也碰到了这个问题我想利用currentWoman:=data2;把一个data2:Array[0..256]of char;
的内容拷贝到一个字符串CurrentWoman,
(00001#黎明#男#.................)相当长,经常超过255.然后将currentWoman作为返回值解析出中间的内容送到窗口上去
中间用到了ts:Tstringlist来存放解析的内容,
我发现CurrentWoman只要稍微长点,就bounds报错.
1.我以为是ts小了,所以我加了个ts1.(就是上面贴的代码)
2.有朋友说currentwoman不能超过255,但是我有时候data2的数据>255也能通过.
但有时候又崩溃...
while pos('#',CurrentWomanStr)<>0) do
begin
index:=pos('#',CurrentWomanStr);
ts.add(copy(CurrentWomanStr,1,index-1));
i:=i+1;
delete(CurrentWomanStr,1,index);
end;
ShowMessage(IntToStr(ts.Count)); //显示个数
另外,i:=0; i:=i+1;是多余的,赋值方法也太繁琐,可以用比较好的、简便的方法设计后赋值。
var
S1,S2...S50:string;
CurrentWomanStr:String
...
begin
...
CurrentWomanStr:=S1+'#'+S2+'#'+...+S50+'#';
...
endS1,S2,...,S50是动态赋值,如果S1+'#'+S2+'#'+...+S50+'#'这些字符加起来后长度超过255(String类型的范围是0...255),系统只能取前255个字符,因此'#'的数量将有可能没有50个,也就是说有可能没有ts[50],如果象下面用到ts[50]
FormJSMain.edtfingerprint.Text:=ts[50];
就会出现错误: EStringListError:list index out of bands(50)。建议你把CurrentWomanStr改为数组类型,这样你取S1,S2...S50的方法需要改变。
var
CurrentWomanStr:WideString;
while pos('#',CurrentWomanStr)<>0) do
begin
index:=pos('#',CurrentWomanStr);
ts.add(copy(CurrentWomanStr,1,index-1));
i:=i+1;
delete(CurrentWomanStr,1,index);
end;
ShowMessage(IntToStr(i)); // 看看找到了几个