Vou tentar explicar. O problema é o seguinte:
vamos supor que sua lista tenha 5 itens. Se você usar:
for n := 0 to lista.count -1
 begin
......
 end
o lista.count vai ser 5, e n vai variar de 0 à 4. Mas se você exclui 1 item,
o lista.count vai ser 4. Então n deveria variar de 0 à 3. Mas acontece que
você está excluindo o último então quando n volta para o "for" ele procura
por um índice que não existe mais (seria o 4). Não sei se consegui explicar.

solução

n := 0;
while n <= lista.count -1 do
 begin
     .................
     inc(n);
 end;

Espero ter ajudado e explicado.

----- Original Message -----
From: "Leandro Ferreira" <[EMAIL PROTECTED]>
To: <delphi-br@yahoogrupos.com.br>
Sent: Thursday, January 06, 2005 9:44 AM
Subject: Re: [delphi-br] Tratamento de erro


>
> Wellingthon e Amigos da Lista,
>
>     Até entendi o que você quis dizer com o "fazer de traz para a
> frente", mas continua apresentando o mesmo problema, agora ta até pior,
> vocês poderiam me dizer onde está meu erro e uma forma para corrigir
> isto, pois não estou conseguindo.
>
> Quando escrevi a rotina "lista.Delete(x)" foi com o intuído de apagar o
> conteúdo dentro da regra estabelecida para posteriormente eu inserir os
> novos itens. Caso alguém souber como sobrescrever estes itens sem
> precisar apaga-los ficarei muito agradecido.
>
> Obrigado pela ajuda,
>
> Leandro Ferreira
> Desenvolvedor - Tecnologia
> NEXXERA Tecnologia e Serviços S.A.
>
>
> Wellingthon Araújo escreveu:
>
> >mas tb olha o q c tá fazendo...
> >
> >"lista.Delete(x);"
> >
> >assim num dá né meu..
> >se vc tem 50 linhas, e apaga 10, quando o i chegar no 41 vai dar pau...
> >
> >tenta fazer de traz pra frente que ai num dá esse erro naum!!!
> >
> >
> >Leandro Ferreira <[EMAIL PROTECTED]> wrote:
> >Boa tarde amigos da Lista,
> >
> >    Estou inserindo o conteúdo de um memo num stringlist e o mesmo
> >apresenta erro toda vez que vou fazer a inserção. Agradeço a ajuda de
> >todos desde já pois não estou identificando de onde vem esta mensagem de
> >erro.
> >
> >Eu apago tudo o que estiver dentro do stringlist desde que esteja dentro
> >desta faixa, que estará sempre na ultima linha.
> >     for x := 0 to lista.Count - 1 do
> >     begin
> >        if (pos('*' , (lowercase(before(lista.Strings[x], '='))))>0) or
> >           (pos('.' , (lowercase(before(lista.Strings[x], '='))))>0) then
> >        begin
> >            lista.Delete(x);
> >        end;
> >     end;
> >
> >Quando saio do FOR vejo se o que existe dentro do MEMO está dentro da
> >regra que necessito e peço para inserir todo o seu conteúdo na lista.
> >     if (pos('*' ,
> >(lowercase(before(memMorePrefixInbox.Lines.Strings[i], '='))))>0) or
> >        (pos('.' ,
> >(lowercase(before(memMorePrefixInbox.Lines.Strings[i], '='))))>0) then
> >     begin
> >          lista.Insert(x,memMorePrefixInbox.Text);
> >      end;//if
> >
> >Ele está apresentando erros de List index Out Of Bounds (numero da
linha).
> >
> >O engraçado é que o resultado que espero está saindo corretamente, só
> >que quando altero o arquivo ele apresenta este erro quando vai inserir
> >no stringlist.
> >
> >Obrigado desde já,
> >
> >
> >
>
>
>
> --
> <<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>>
>
> Para ver as mensagens antigas, acesse:
>  http://br.groups.yahoo.com/group/delphi-br/messages
>
> Para falar com o moderador, envie um e-mail para:
>  [EMAIL PROTECTED] ou [EMAIL PROTECTED]
>
> Links do Yahoo! Grupos
>
>
>
>
>
>
>
>
>






-- 
<<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>>

Para ver as mensagens antigas, acesse:
 http://br.groups.yahoo.com/group/delphi-br/messages

Para falar com o moderador, envie um e-mail para:
 [EMAIL PROTECTED] ou [EMAIL PROTECTED]
 
Links do Yahoo! Grupos

<*> Para visitar o site do seu grupo na web, acesse:
    http://br.groups.yahoo.com/group/delphi-br/

<*> Para sair deste grupo, envie um e-mail para:
    [EMAIL PROTECTED]

<*> O uso que você faz do Yahoo! Grupos está sujeito aos:
    http://br.yahoo.com/info/utos.html

 



Responder a