FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#21
|
||||
|
||||
Pues si. Pero es que yo asumía que por "previamente almacenados" hace referencia a que de algún modo se recuperaban los datos almacenados físicamente y que éstos ya se encontraban ordenados.
Voy a tener que dejar los supuestos Yo también le apuesto a TStringList cuando se trata de mantener los objetos ordenados de acuerdo a cierta "clave", aunque no me es de total agrado... Lo siento como que se está utilizando un parche. Resulta extraño que no hubiera de fábrica una lista de objetos ordenada, sin tener que recurrir a otra vía. Saludos, |
#22
|
||||
|
||||
Pero, ¿dónde leiste eso de previamente almacenados?
// Saludos |
#23
|
||||
|
||||
Pues por eso... yo asumí que el máximo objetivo, no comentado, de sebamawa era de lograr tener los objetos almacenados y ordenados. De modo que ante una recuperación o "lectura" de éstos, bastaría con hacer una inserción ordenada y no tener que estar aplicando algoritmos de ordenamiento.
Saludos, |
#24
|
||||
|
||||
Pues sí, ése es su objetivo. Creo que te hace falta un café para despertar
// Saludos |
#25
|
||||
|
||||
Cita:
Saludos, |
#26
|
|||
|
|||
Buscar y eliminar un objeto de un TObjectList
Hola a todos nuevamente !!!
Para eliminar un objeto de una lista TObjectList tenemos el método Remove; ahora para buscar un objeto en la misma por un campo clave hay algún método predefinido?. En caso de no haberlo, sería viable implementar un procedimiento que realice una búsqueda binaria, como propuso Roman para la inserción de objetos en una lista ? Me podrían poner un ejemplo de este caso, por ejemplo si se tiene una lista de objetos (persona) y se quiere eliminar una persona según un número de documento que se ingrese para la búsqueda. Tengan presente que la lista está ordenada de forma ascendente según los números de documentos. Desde ya muchas gracias. Saludos. |
#27
|
||||
|
||||
Hola sebamawa.
Si la lista ya está ordenada podes usar una búsqueda binaria. Tomemos como ejemplo una reducción de la clase que puso de ejemplo roman:
Saludos.
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
#28
|
|||
|
|||
Muchas gracias ecfisa, algo como lo que planteaste tenía en mente y resulta de mucha ayuda.
Como he comentado, vengo de Pascal Estándar, o sea de arreglos estáticos, crear listas enlazadas desde cero, etc, y estoy tratando de migrar algunas estructuras de datos a Delphi como listas enlazadas y arboles, pero claro, Delphi ya tiene incorporadas muchas de estas estructuras o algunas semejantes que facilitan el tener que empezar a programar desde cero, supongo que esto se da en todo lenguaje moderno. Me podrías decir donde encontrar descripciones de los métodos y propiedades de las clases de Delphi, es que a veces cuando tengo que realizar una tarea caigo en la duda si, es que tengo una rutina predefinida o no, y en este último caso debo implementar la misma por mi cuenta. Otra duda, el método FindInstanceOf de la clase TObjectList, qué tarea realiza? Y lo último, teniendo la posibilidad de realizar búsquedas binarias en una lista (TObjectList por ejemplo), sabiendo que este tipo de búsqueda es muy eficiente, tiene sentido el utilizar árboles para el guardado de datos? Tal vez más de uno me dirá que use base de datos, pero antes quiero manejar con solvencia las estructuras de datos que menciono antes. Muchas gracias. Saludos para todos. |
#29
|
||||
|
||||
De hecho, modificando un poco, la misma función que se usa para la inserción se puede usar para la búsqueda. Es decir, se hace una sóla función de búsqueda que devuelva el índice donde debe ir el objeto. Ese índice se usa, bien sea para insertar un nuevo objeto, o bien para devolver la posición del objeto buscado.
// Saludos |
#30
|
||||
|
||||
Hola sebamawa.
Cita:
Cita:
Saludos.
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
#31
|
||||
|
||||
Cita:
Desconozco si Delphi provee de fábrica un TObjectTreeList (por darle un nombre) pero me parece que el que consideres pensar en árboles, y que luego sobre este posiblemente se deba implementar y adaptar los algoritmos de insersión, ordenamiento y búsquda es ya algo exagerado y una pérdida de tiempo. Lo mejor es que le dejes eso al motor de base de datos... que lo hace estupéndamente. Si ya de hecho los motores por dentro poseen árboles para estructurar los datos. Concretamente los B+ tree. Luego es que existen tus clase del dominio, y crearás tantos objetos como registros tengas. Al extraer los registros pasas los datos a cada instancia en sus correspondientes campos. Y el paso inverso, desde tu clase del dominio lees sus campos y mandas a ejecutar una instrucción INSERT o UPDATE sea el caso. A estas alturas y si quieres seguir avanzando de escala ya te vas pensando en un framework de persistencia. Me parece que te estás complicando las cosas innecesariamente. Saludos, |
#32
|
||||
|
||||
Cita:
// Saludos |
#33
|
||||
|
||||
Cita:
Sinceramente, pretender llegar a pensar en árboles es demasiado. Es mejor quedarse con la Lista, a como se ha propuesto... y que como bien dices, para este caso es equivalente al árbol binario. Si ya la lista con lo propuesto sirve ¿para que más? Si en verdad se quiere llevar al TAD árbol, y que se comporte como tal, pues habrá que buscar una clase, si es que ya está. O bien volver a retormar las clases de estructuras de datos. A mi parecer, creo que se está perdiendo la sintonía del problema y buscar resolverlo de una forma más complicada de la que se podría llevar. Y lo digo precisamente porque algo me dice que sebamawa ha perdido de vista algo, porque algo le hace pensar ahora que árboles le resultará más adecuado. ¿No será mejor invitar a que se descubra y explique ese algo? Yo creo que de algo nos estamos perdiendo. Saludos, |
#34
|
|||
|
|||
Estimados amigos, primero que nada les agradezco sus sugerencias y ayuda.
Estoy de acuerdo con lo que dice Delphius, estoy complicando las cosas, y seguramente eso se de porque aún me falta aprender muchas herramientas de Delphi. Lo he dicho más de una vez, mi base previa en programación es Pascal Estándar, un curso con FreePascal y otro con Modula2 (que básicamente es Pascal para trabajar de forma modular). Con los compiladores anteriores sólo trabajabamos con la consola Dos, o sea, todas las salidas se realizaban de modo texto en la consolita. Los cursos que mencioné estaban enfocados a adquirir los rudimentos de la programación estructurada (con FreePascal) y la programación modular (Modula2). Prácticamente todo lo hacíamos desde cero, listas enlazadas, árboles, arreglos con tope, etc; claro que no eran superaplicaciones ni mucho menos lo que realizabamos partiendo "desde la nada". Pero de interfaces gráficas, nada de nada, es por ello que yo de forma autodidacta he querido sumergirme un poco en la programación con interfaces de este tipo, y para ello elegí Delphi, pues es una forma de seguir conectado con Pascal. Pero, está recontra claro, que la potencialidad y las herramientas de Delphi te ahorran mucho trabajo, y es por ello que a veces sin quererlo complico un poco las cosas queriendo traer algunas estructuras de Pascal Estándar que ya están predefinidas en Delphi como TAD's. Nuevamente gracias, y espero se entienda en parte por qué he planteado ciertas dudas. Saludos. |
#35
|
||||
|
||||
Cita:
Cita:
// Saludos |
#36
|
||||
|
||||
Cita:
Por más que esto se trate de alguna práctica, debe haber algún objetivo detrás de esto, y que va más allá de practicar con los TADs. Si en verdad lo que se busca es practicar con TADs pues entonces lo más apropiado es justamente utilizar TQueue, TStack, TList, para Colas, Pilas, Listas, algún derivado o similar de la familia de los TTreeView para árboles y se opere con estos. Es decir, tomar aquellos prácticos que se nos daban en la cátedra de estructuras de datos. Y si en verdad se quiere llegar a implementar su propia clase, pues con más razón: agarrar los libros de estructuras de datos, repasar el tema de punteros e implementar los algoritmos. Justo casi igual que en la vieja escuela. Pero he aquí que las dudas me parecen encaminar a algo más profundo que eso y no es una cosa de una simple práctica de TADs sino que se intenta responder y utilizar a los TADs para algo que busca a hacer. Parte de ese algo nos ha comentado, pero me parece que hay un iceberg oculto y no logramos ver. Y lo digo en buen plan, porque si ya se ha propuesto algunas soluciones y que ahora resulta que quiere ir a por árboles, es el momento de decir: Momento... ¿a donde más quieres llegar? Mejor analicemos el problema de otra forma, cual es el contexto a analiza y de allí vemos las posibles sugerencias y te damos los elementos para que practiques. Cita:
Porque así lo que se dará serán contenidos sueltos, uno después del otro y no necesariamente con alguna corelación cuando en realidad lo que más les favorece a los que se inicia es tener un buen plan de práctica que le ofrezca un paneo general y con un temario que sea escalado y sepa unir a los conceptos. Si respondemos hoy sobre TObjectList, mañana sobre árboles, y quien sabe si luego en un mes es sobre grafos y vemos que se sigue dando vueltas en el mismo problema es una clara y evidente señal de que algo no se ha comprendido bien. Cita:
Si los datos y las posibles operaciones a esperarse no dan ciertas evidencias de comportarse con dicha estructura es quizá el momento de preguntarse si el utilizar formal y explícitamente un árbol le aporta más valor... ¡a una mente que ya está confundida! No pretendo dar una cátedra teórica en cada post, sino más bien evidenciar de que el problema se lo está planteando algo exagerado. Precisamente demuestro con exageraciones el impacto y a donde se lo está por intentar llevar al hilo. Repito y sostengo: antes de empezar a saltar al tema de los árboles, ¿Será realmente necesario? ¿Porqué no discutir los verdaderos y demás objetivos tras todo esto? Realmente te me sulfuraste conmigo al divino botón. Saludos, |
#37
|
||||
|
||||
Está bien Delphius, tranquilo, no te vayas a provocar una úlcera.
// Saludos |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
adotable ordenado por un campo | leorene | Conexión con bases de datos | 2 | 13-02-2007 01:00:16 |
Select ordenado por un campo pero localizado por otro | ingel | SQL | 2 | 04-01-2006 17:33:23 |
Imprimir el listado ordenado por un campo | ilichhernandez | Impresión | 3 | 03-11-2005 19:44:13 |
DBLookupComboBox ordenado | Supermagayin | Conexión con bases de datos | 2 | 12-04-2005 00:18:33 |
Grid ordenado al añadir registro | Tomás | Varios | 0 | 13-03-2004 14:58:02 |
|