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