菜鸟捉虫(6)

软件世界

上期正确答案:

在上期的代码中,lsExistNum对象没被创建,加上lsExistNum:=TStringList.Create;后程序则不会出现错误。在第二个while循环中,nRe没有再被赋予新的值,所以nRe将永远等于0,使程序陷入死循环。将lsExistNum.IndexOf(IntToStr(nNum)) 改成nRe:=lsExistNum.IndexOf(IntToStr(nNum)) 即可正常。

获奖名单:

浙江 唐晓吉
湖南 刘迅
山东 党博昌
江苏 管震宇
以上获奖读者将获得电脑报最新出品的电脑报系列配套光盘杂志一套。

本期题目:

假设ListBox1中存放的是一些英文单词(其中既有大写的,也有小写的),现在要在Edit控件中输入要查找英文单词,通过单击Button按钮给出查询结果并放在ListBox2中(要求是不分区大小写)。下面是实现这一功能的源代码,但其中还存在一些Bug,请修正。
procedure TForm1.DoSearch;
var
i: Integer;
SubStr: String;
begin
// 搜索
SubStr:=Edit1.Text;
ListBox2.Clear;
for i:=0 to ListBox1.Items.Count -1 do
begin
if Pos(SubStr,ListBox1.Items.Strings[i]) > -1 then
ListBox2.Items.Add(ListBox1.Items.Strings[i]);
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
DoSearch;
end;