FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
||||
|
||||
Delphi toma el valor de I cuando se inicia el bucle. Si borras uno o mas elementos de la tabla, cuando I llega al valor inicialmente capturado Cod.Count-1 ya estas fuera de la tabla. Por ejemplo, tienes una tabla de 25 elementos, al inicio del bucle pascal determina que debe contar desde 0 hasta 24, si borras algun elemento de la tabla da igual, la cuenta llegará a 24, y como has borrado un elemento, cuando intentes borrar o comprobar el elemento num. 24 estas fuera de rango.
Lo mejor en esos casos es hacer un bucle While o Until.
Asi compruebas el valor de Cod.Count en cada pasada Última edición por Dedalo fecha: 08-05-2008 a las 11:08:19. |
#2
|
|||
|
|||
Muchas gracias por respoder tan pronto.
He probado las dos formas, recorrer la lista al reves y poner un while en vez de un for, y las dos han funcionado. Una última pregunta ¿Que es más rápido el while o el for? |
#3
|
|||
|
|||
Cita:
Cita:
|
#4
|
|||
|
|||
Muchas gracia por todas sus respuestas.
|
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Problemas para borrar registro | jlalvarez | PHP | 2 | 12-11-2007 22:49:50 |
Funcion para borrar la cadena que aparesca repetida dentro de otra cadena | flystar | Varios | 1 | 02-07-2007 23:51:10 |
Funcion para buscar cadena dentro de otra cadena y el numero de veces | flystar | Varios | 3 | 02-07-2007 22:48:08 |
Problemas con TStrings | 1501 | OOP | 2 | 19-11-2004 03:36:04 |
Borrar caracteres de una cadena | jymy788 | Varios | 2 | 29-10-2004 12:36:11 |
|