![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
|
|
#1
|
||||
|
||||
|
Sinceramente nunca había escuchado eso de File of... Te compila esa línea?
|
|
#2
|
|||
|
|||
|
si es para manejar archivos.. osea en vez de usar base de datos asi automaticas como mysql y esas cosas uso archivos..
|
|
#3
|
||||
|
||||
|
Cita:
Precisamente por el archivo tipado (File of) que te limita al uso estático, es que me parece que la solución es dimensionar el array lo suficientemente grande para contener las máximas cotas posibles. Pero claro, en varios casos se va a desperdiciar espacio. Un saludo.
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
|
#4
|
||||
|
||||
|
Acabo de leer un poco en delphi.about sobre esta declaración File of, que sinceramente desconocía. Según leí, puedes utilizar File of con arreglos dinámicos.
El problema que veo es que quieres definir una nueva clase que sería nada más que un arreglo dinámico. Esto no se puede hacer. Lo que debes hacer es crear el arreglo dinámico como variable (al igual que otro cualquier arreglo dinámico) y luego asignarle su longitud con la rutina SetLength. Deduzco, que no es necesario utilizar SetLength cuando estés abriendo un archivo, sino sólo para guardarlo. Más o menos creo que sería así:
Creo que también deberías considerar utilizar registros en lugar de arreglos polidimencionales. Los registros son más fáciles de leer y entenderse para el programador. |
|
#5
|
||||
|
||||
|
Hola Chris.
Hasta donde sé, desde Pascal 5.5 hasta Delphi 7 incluido, no permiten usar arreglos dinámicos en archivos tipeados. Dado que los archivos con tipo, son archivos de acceso directo, no creo que sus registros pudieran tener diferentes tamaños. Con el código que adjuntas (usando Delphi 7) en la línea donde se declara el archivo con tipo, obtengo el siguiente error de compilacion: Cita:
También coincido con vos que es mucho más sencillo y práctico utilizar registros en lugar de arreglos multi-dimensionales. Un saludo.
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... Última edición por ecfisa fecha: 09-03-2011 a las 20:00:35. |
|
#6
|
||||
|
||||
|
Hola ecfisa!
Gracias por la aclaración. Creo que mi ignoracia al respecto de File of se ha notado . Entonces no se me ocurre otra cosa, a menos que talvez se pueda simplemente utilizar la declaración File of Array of Integer para la variable IOFile y verificar que con eso los datos se guarden correctamente.Pero bueno, talvez la declaración: en registros se puede traducir como: y de ahí utilizarla a cómo el compañero había querido hacerlo. |
|
#7
|
|||
|
|||
|
Chris me sigue tirando el mismo error, lo que pasa es que un archivo necesita saber cuando espacio se tiene que reservar antes de procesar por eso no deja poner un array dinamico... por eso lo que yo quice hacer es mandar las dimensiones a un proceso donde definia el array con esas dimensiones.. pero no se puede, yo una vez en visual basic lo hice y funciono, pero por lo visto no delphi no lo permite, y prefiero delphi a visual basic asi que no se cambia el lenguaje :P
ecfisa tu solucion del arreglo gigante es una solucion valida, pero como bien dijiste voy a desperdiciar muchas veces espacios, y dado que los arreglos llegan a contener muchisimos numeros seria un desperdicio de espacio en aquellos arreglos donde tenga que guadar pocos numeros. el tema es asi, a mi me viene un documento de texto supongamos: 111111111 100000001 100000001 100000001 111111111 que es un mapa de un juego no? donde cada numero implica un tile, el tema que por cada numero yo lo tengo que desarmar en una matriz de 20 x 20(porque cada tile lo desarmo en pixeles por razones especiales), armar esa gran matriz, es decir pasar cada numero a 20*20 numeros, ya esta hecho, lo que se me complica es, como guardo ese gran arreglo dinamico en un archivo(no hay drama en guardarlos en una estructura uni dimensional ya que ya tengo resuelto como convertirla en matriz), sin ser guardado numero a numero, porque muchos me diran: hace un file of integer y guarda el arreglo celda a celda, pero al momento de leer el archivo tardo una banda ya que el acceso a rigido es muy lento.. si a alguien se le ocurre como puedo guardar toda esa informacion en un archivo, solamente usando una estructura le estoy infinitamente agradecido... NOTA: esa matriz que mande como ejemplo es de 9*5 no? entonces la matriz de pixeles quedaria: 180*100, es decir guardado en un arreglo (de una dimension) tendria 18000 celdas.. Última edición por kdemia fecha: 10-03-2011 a las 15:47:59. |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| Que estoy haciendo mal ? | piolillo | Internet | 8 | 28-07-2011 17:23:24 |
| Que estoy haciendo mal con este trigger | @-Soft | Firebird e Interbase | 6 | 25-01-2011 02:37:35 |
| Uso de clases, ¿que estoy haciendo mal? | gerardorom | C++ Builder | 2 | 26-12-2007 15:35:38 |
| Que estoy haciendo Mal | esimon | SQL | 4 | 04-07-2006 21:55:25 |
| Que estoy Haciendo mal | jostrix | PHP | 1 | 01-11-2004 01:29:16 |
|