FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
||||
|
||||
Guardar matriz en un archivo (para cargarla posteriormente)
Muy buenas.
Necesito guardar el contenido de una matriz en un archivo. Los elementos de la matriz son de tipo Integer, y actualmente tengo un sistema, que va elemento por elemento guardándolo en un archivo (mediante el método Write). Lo que pasa es que este método se hace un poco lento cuando la matriz empieza a contener cientos y miles de miles de elementos. Sé que hay un sistema para hacerlo directamente, mediante BlocRead y BlocWrite, pero no sé cómo usarlos. ¿Alguien me podría ayudar? La matriz la declaro con un número indefinido de valores (Matriz: array [0..0] of integer, para después asignarle el tamaño que necesite con GetMem, y vaciarla con FreeMem. Gracias a todos por vuestra atención. |
#2
|
||||
|
||||
Hola,
Una opcion es que lo guardes mediante un TFileStream, y lo recuperes de igual manera. Saludos |
#3
|
|||
|
|||
Hola
Seoane Hace un tiempo respondió en un post sobre bloackread y blockwrite si mal no recuerdo para partir archivos en otros más pequeños. Tal vez el problema no es escribir una matriz muy grande sino el tamaño del archivo generado Me pregunto si es tan lento resulta escribir a un archivo una matriz aunque tenga varios miles de columnas y de filas Que tipo de archivo usas? Un archivo de texto? Saludos |
#4
|
||||
|
||||
El código (así, de memoria) es más o menos este
El archivo no es de texto, sino tipo Integer. Ir numero por número hace el trabajo lento (ya me ha pasado otras veces con otras cosas, si mal no recuerdo leyendo carácteres unicode de archivos). El código para leer el archivo es similar (Read en vez de Write y poco más). |
#5
|
|||
|
|||
¿No podrías subir un archivo con una matriz grande para probar con algún codigo?
|
#6
|
|||
|
|||
Estube probando un poco.
Puse en un stringgrid matrices de valores aleatorios enteros, una matriz de 500 * 500 (el archivo resultante es de 976 kb) y una de 3000*3000 (el archivo es de 34 mb). Creo que la peor forma de guardar los datos en usar un archivo de tipo File of integer. Se me ocurre. Tendría que probar otra forma para tener una idea bien clara. |
#7
|
|||
|
|||
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
duplicar un form para posteriormente modificar solo unos datos | Ade | Varios | 5 | Hace 4 Semanas 18:51:56 |
Impresión en Modo Texto para matriz de puntos | AzidRain | Impresión | 0 | 09-06-2006 02:15:19 |
Como creo un archivo para guardar registros? | MadeInBsAs | OOP | 4 | 06-06-2006 21:16:33 |
como cargar una matriz 4x4 con datos de un archivo ? | Picketero | C++ Builder | 1 | 20-04-2006 20:49:45 |
Guardar matriz? | danytorres | Varios | 1 | 27-10-2003 04:10:23 |
|