![]() |
![]() |
![]() |
![]() |
![]() |
FTP | ![]() |
![]() |
CCD | ![]() |
![]() |
Buscar | ![]() |
![]() |
Trucos | ![]() |
![]() |
Trabajo | ![]() |
![]() |
Foros | ![]() |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
![]() |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
||||
|
||||
Cita:
Yo creo que cada cosa tiene su lugar y en este caso de un arreglo bidimensional de cadenas, el uso de arreglos, dinámicos o estáticos, me parece lo más adecuado, máxime cuando los mayores problemas con los que te puedes enfrentar son con el uso de índices en cuyo caso únicamente hay que tener cuidado en no rebasar los límites inferior y superior:
// Saludos |
#2
|
||||
|
||||
Toda tabla de 2 dimensiones puede convertirse en un objeto con propiedades y métodos, por tanto, hasta ahí, prefiero usar Objetos. Si tiene más dimensiones, y hay que hacerlo, se hace, pero hacerlo pa ná... es tontería.
En serio, si unicamente va a escribir datos en el array, y despues leerlos, usaré un array, pero en cuanto haya que acceder al array para modificar ciertos datos, hacer comprobaciones, etc., busco otro método de implementarlo, ¿por qué? porque el código principal del programa se convierte en codigo de comprobaciones. En el caso que nos ocupa, se tiene que asignar valores iniciales a cada fila, y al tiempo de leerlo, debe hacer 2 comprobaciones para una fila: - el valor del nombre de la variable es bueno - saber si se guarda el valor de la variable o no. Esto implica realizar rutinas del tipo: function Nombre Variable Es Bueno(indice de la tabla) : Boolean function Tiene Valor Asignado(indice de la tabla):Boolean Para rescatar el valor de una variable no puede usar AsString, AsDouble por ejemplo, cada vez que rescate un valor deberá convertirlo segun la necesidad; o peor aún.... realizando las conversiones sobre la marcha y repitiendo mucho código. Todo se puede encapsular en un objeto con apenas 3 propiedades y 2 métodos privados, obteniendo mucha más claridad en el código. Un saludote |
#3
|
||||
|
||||
El uso de un objeto que encapsule un arreglo bidimensional o de las dimensiones que quieras no se elaciona con lo que has afirmado anteriormente. La pregunta prevalece: ¿en qué forma usas un TObjectList o un TList para implementar un arreglo?
Si he de mantener un arreglo, digamos para almacenar un tablero de ajedrez, ciertamente puedo pensar en un objeto Tablero con métodos para colocar las piezas y moverlas. Pero en su representación interna muy posiblemente seguiría usando un arreglo (en este caso estático) para mantener las posiciones de la fichas. Cada elemento del arreglo podría ser un record o, incuso, un objeto, pero el punto es que sigo sin ver la necesidad de una TList o TObjectList para representar un arreglo bidimensional. // Saludos |
#4
|
||||
|
||||
Cita:
No siempre puede sustituirse, incluso a veces, por comodidad es mejor un array que andar creando objetos en memoria, liberando y demás. Estoy totalmente de acuerdo que los fallos que puede dar un array son mínimos, e incluso menores que un objeto. Por ejemplo, cada vez que creas un objeto, deberías usar un try except, en el caso de arrays, solamente usas un try except con la instrucción SetLegth en su interior y listo!!. No respondí a la pregunta de la matriz 5x3x6, ya que, como es obvio, la única forma de hacerlo es mediante una matriz. (No voy a ser cabezota manteniendo una afirmación insulsa... y menos contigo ![]() ![]() ![]() Cita:
Cita:
![]() Por cierto, Mis felicitaciones por los Hijos de San Luis, que me tuvieron en Jaque hasta el último momento ![]() |
![]() |
|
|
![]() |
|