Q&A

  • ListBox에서 에러메세지인데요!!!


****에러메세지*****

==================================================================================

Project1.exe raised exception EStringListError with message 'List index out of bounds(0)' process stopped. Use step or Run to continue.

==================================================================================

에러메세지입니다...

이해는 가는데...... 어떻게 처리를 해줘야 하는지 잘 모르겠습니다...

고수님들 조금만 갈켜 주세요.......

제 주위에 델파이를 잘 하는 사람이 없어서리 지금 아주 고생하고 있습니다....



밑에는 소스의 일부분인데요!!! 이 부분에서 에러가 뜨는데요...

혹시 아시고 계시는 분이나 경험이 있으신분 조언 부탁드립니다..

아님 소스를 수정하셔도 됩니다...^^;

===================================================================================

procedure TForm1.Increase;

var

i: Integer;



begin

for i := 0 to (ListBox1.Items.Count) do

begin

Try

NMFTP1.Download(ListBox1.Items.Strings[i], 'C:A'+ ListBox1.Items.Strings[i]);

DbTry;

NMFTP1.Delete(ListBox1.Items.Strings[i]);

except begin

StatusBar1.SimpleText := 'Downloading~';

next;

end;//except

end;//Try

TimerInterfaceTimer(Nil);

end;// for~

end;

===================================================================================

이부분에서 루프를 돌잖아요?? 처음에는 ListBox1에 파일이 있으면 잘 돌아가는데요..

파일이 더이상 없으면 에러를 띄우더라구요!!

제발 고수님들 초보를 이 안타까운 현실를 고수님들의 조언과 조금의 코딩으로 ....

초보의 늪에서 빠져 나올수 있도록 해 주세요!!!

그럼 즐거움 하루 보내세요!!!! 꾸벅~

1  COMMENTS
  • Profile
    Ziker 2001.11.07 21:53
    안녕하세요



    그 에러는요.. 님이 마지막에 말씀 하신것 처럼

    리스트 박스의 내용이 더이상 없을때 가령



    0,1,2,3,4,5 번지까지 데이터가 있는데 6번에 없다면

    에러를 뛰우게 되어 있어요

    없는데 읽어 오려니까 못 가지고 오겠다고 앙탈 부리는 거지요..



    해서..

    for i := 0 to (ListBox1.Items.Count) do



    이 부분을

    for i := 0 to (ListBox1.Items.Count-1) do로 바꿔주세요



    참고로 items.count 는 천제 개수가 나옵니다.

    0,1,2,3,4,5 번지에 각각 들어 잇음 6이 나오는거죠



    근데

    0에서 부터 items.count까지 돌리면서 i 변수에 대입하면 마지막에

    6이 들어 가겠죠? listbox에는 더이상 6번째 아이템이 없는데 말이죠



    이해가 되지요?



    그럼 후다닥...







    초보델피언... wrote:

    >

    > ****에러메세지*****

    > ==================================================================================

    > Project1.exe raised exception EStringListError with message 'List index out of bounds(0)' process stopped. Use step or Run to continue.

    > ==================================================================================

    > 에러메세지입니다...

    > 이해는 가는데...... 어떻게 처리를 해줘야 하는지 잘 모르겠습니다...

    > 고수님들 조금만 갈켜 주세요.......

    > 제 주위에 델파이를 잘 하는 사람이 없어서리 지금 아주 고생하고 있습니다....

    >

    > 밑에는 소스의 일부분인데요!!! 이 부분에서 에러가 뜨는데요...

    > 혹시 아시고 계시는 분이나 경험이 있으신분 조언 부탁드립니다..

    > 아님 소스를 수정하셔도 됩니다...^^;

    > ===================================================================================

    > procedure TForm1.Increase;

    > var

    > i: Integer;

    >

    > begin

    > for i := 0 to (ListBox1.Items.Count) do

    > begin

    > Try

    > NMFTP1.Download(ListBox1.Items.Strings[i], 'C:A'+ ListBox1.Items.Strings[i]);

    > DbTry;

    > NMFTP1.Delete(ListBox1.Items.Strings[i]);

    > except begin

    > StatusBar1.SimpleText := 'Downloading~';

    > next;

    > end;//except

    > end;//Try

    > TimerInterfaceTimer(Nil);

    > end;// for~

    > end;

    > ===================================================================================

    > 이부분에서 루프를 돌잖아요?? 처음에는 ListBox1에 파일이 있으면 잘 돌아가는데요..

    > 파일이 더이상 없으면 에러를 띄우더라구요!!

    > 제발 고수님들 초보를 이 안타까운 현실를 고수님들의 조언과 조금의 코딩으로 ....

    > 초보의 늪에서 빠져 나올수 있도록 해 주세요!!!

    > 그럼 즐거움 하루 보내세요!!!! 꾸벅~