FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Problemas para borrar una cadena de un Tstrings
Hola a todo el mundo.
Pues eso, tengo un problema para borrar una cadena en concreto dentro de un tstrings. Lo que hago es: Código Delphi [-] for I := 0 to Cod.Count-1 do begin ... Cod.Delete(I); ... end; El problema es que me da 'List index of bounds'. Da igual el valor que tenga I. ¿Alguien sabe lo que estoy haciendo mal? ¿Hay otra manera de hacerlo? Muchas gracias por su ayuda |
#2
|
||||
|
||||
En estos casos, debes recorrer la lista alrevés:
Edito También puedes intentar poniendo simplemente
en lugar del ciclo. // Saludos Última edición por roman fecha: 08-05-2008 a las 10:57:25. |
#3
|
||||
|
||||
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. |
#4
|
|||
|
|||
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? |
#5
|
|||
|
|||
Cita:
Cita:
|
#6
|
|||
|
|||
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 |
|