FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
|||
|
|||
Método Add(s) de TStringList no me hace caso
Hola a todos/as:
En un módulo de un programa tengo que utilizar un TStringList ya que tengo que mantener de forma dinámica una lista de claves de exclusión durante la ejecución del programa (para evitar que cierto proceso que tengo que hacer se duplique, generando basura en los resultados). El caso es que cuando intento añadir un nuevo String a la lista: Código:
lista.add(qtrazaTRAZA12.Value); El campo TRAZA12 al que hago referencia sí es un String y antes de usar la lista hago un create sobre la variable. ¿Alguien sabe por qué no hace nada? |
#2
|
|||
|
|||
Y estás seguro que esa línea se ejecuta?
A lo mejor el compilador la elimina por que no le encuentra relevancia... Pon un breakpoint en esa linea (F5) y compila tu programa, si el breakpoint sigue activo, ejecuta el programa y ve que sucede antes y despúes de esa línea... Saludos... |
#3
|
|||
|
|||
y si usas un cast?
lista.add(string(qtrazaTRAZA12.Value)); o incluso no se si puedas hacer esto: lista.add(qtrazaTRAZA12.AsString); o ya de plano: stringTemp := qtrazaTRAZA12.Value; lista.add(stringTemp); |
#4
|
||||
|
||||
De verdad, no me la creo!!!
Nunca he visto a un StringList fallar de esta manera. Creo que la línea de código no está ejecutándose, quizás porque las condiciones no se dan para que pase por allí. Estoy seguro que el optimizador no eliminaría una línea como esta. Otra posibilidad es que estes determinando erroneamente que la línea no se añade, pero que realmente si lo hace. Ambas cosas son fáciles de determinar:
Si se muestra el mensaje, el código se está ejecutando. Si el mensaje mostrado es distinto del valor del campo, sigamos echandole la culpa al StringList, si no, busquemos al verdadero culpable!!. Hasta luego.
__________________
Juan Antonio Castillo Hernández (jachguate) Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate |
#5
|
|||
|
|||
LA línea sí llega a ejecutarse. Puse puntos de depuración lo primero para corroborarlo y sí llega ahí sin dar problemas.
Sin embargo, no hace nada, tras pasar esa línea el depurador me indica que la lista continúa vacía (no he puesto ShowMessage, lo consulté desde un estado de parada en depuración). Ya he probado otros modos que me comentasteis como el AsString y el cast, pero el resultado es el mismo |
#6
|
||||
|
||||
¿Cómo estas comprobando que la lista está vacía?
__________________
Juan Antonio Castillo Hernández (jachguate) Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate |
#7
|
||||
|
||||
¿Podemos ver el código (no sólo una línea)?
|
#8
|
||||
|
||||
Hola.
Cita:
No dejes de respondernos sobre estas cuestiones, aún cuando hayas encontrado la solución. Saludos. Al González. |
#9
|
||||
|
||||
Cita:
Se que puede tomarse por un tecnicismo... tampoco creas que me estoy entrenando para abogado, pero francamente no es lo mismo. Hasta luego.
__________________
Juan Antonio Castillo Hernández (jachguate) Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate |
#10
|
||||
|
||||
Vaya que no es lo mismo. Mayor razón para que David responda a tu última pregunta con más precisión. Tú y yo sabemos lo que es una lista realmente vacía, pero en el sentido general un texto sin caracteres (visibles) es coloquialmente considerado como algo vacío. Mi sospecha va por esa línea de investigación.
Saludos. Al González. |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
¡En un mes me caso! | ContraVeneno | La Taberna | 54 | 23-10-2006 10:15:56 |
Caso específico | sierraja | Firebird e Interbase | 9 | 12-01-2006 00:18:54 |
Caso con DLL. | mlara | Varios | 12 | 19-08-2005 04:48:20 |
Caso SuperRaro con Transacciones | AGAG4 | SQL | 2 | 19-08-2004 16:32:28 |
Caso real.... | jafl1965 | Humor | 1 | 04-11-2003 10:36:05 |
|