Varios tipos de datos en un fichero
Buenos dias,
Estoy intentando crear un fichero en el que quiero guardar diferentes tipos de variables, pero no lo consigo, solo se guardarun tipo de variable.
Esta seria basicamente la estructura que no funciona. Gracias! |
No podemos adivinar exactamente qué problema tienes, cómo lo estás haciendo, qué quieres conseguir, etc.
Además, ¿en los puntos consecutivos qué código va? Pon el código, no podemos adivinar :) |
Ok, quiza he dado poca información. Es un programa de diseño grafico tipo CAD, con vectores, puntos y textos entre otros objetos. Lo que necesito es guardar todos estos datos en un fichero.
El problema es que tendria de definir F como file of TVect, pero entonces ya no puedo guardar mas datos. Posiblemente podria escribir todos los datos, "tipo" a "tipo", añadiendolo al final del fichero, pero despues no sabria como abrir el fichero, espero explicarme. Espero que me podais ayudar. Gracias de antemano |
Hola
Puedes darle una revisada a la funciones BlockRead y BlockWrite estas no necesitan definr un File of type
mira te dejo un pequeño ejemplo que hice
link de ayuda: http://www.delphibasics.co.uk/RTL.asp?Name=BlockWrite http://www.delphibasics.co.uk/RTL.asp?Name=BlockRead Saludos... |
Como odria cambiar el tamaño de los datos a mitad de fichero? Es decir:
//creamos fichero rewrite(myFile,SizeOf(vec)); ... //cambiamos tamaño del registro reset(myFile,SizeOf(texto)); ... o se como podria hacerse.... |
Cita:
De todas formas, tienes que revisar cómo funciona la memoria y qué representa cada tipo de dato. Se evidencia en que lo tienes poco asimilado al intentar guardar un puntero en un archivo de disco. |
Hola Ñuño, no quiero guardar el puntero, de echo, en mi programa ya guardo los datos, pero ahora lo que quiero añadir es otro tido de dato en el mismo fichero.
Un fichero deberia de tener esta estructura: Primero los datos de varios vectores (Tvector) Despues los datos de varios Puntos (TPointer) Despues los datos de varios Textos (TTexto) Al crear/abrir uin fichero me hace definir el tamaño de bloque de datos, por ejemplo TVector, entonces luego ya no puedo escribir/leer otro tipo de dato con un tamaño diferente. Perdon por ser insistente, pero estoy seguro que hay una manera "facil" de hacerlo y no la encuentro. |
Acabo de releer, y resulta que donde pones TPointer leí Pointer. Mis disculpas.
De todas formas, y hasta donde sé, no pueden cambiarse los tamaños de registro en un archivo abierto. La forma "fácil", como tú dices, consiste en guardar cada campo por separado, tal como explica BDWONG. Créeme que es la más sencilla y mejor, en este caso. |
La franja horaria es GMT +2. Ahora son las 06:59:42. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi