![]() |
![]() |
![]() |
![]() |
![]() |
FTP | ![]() |
![]() |
CCD | ![]() |
![]() |
Buscar | ![]() |
![]() |
Trucos | ![]() |
![]() |
Trabajo | ![]() |
![]() |
Foros | ![]() |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
![]() |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
||||
|
||||
![]() Buenos días amigos,
Me encuentro hoy con la siguiente cuestión: resulta que tengo que leer de un memorystream que contiene datos varios entre ellos un archivo jpg de tamaño variable. este es mi registro:
normalmente yo leo de la siguiente manera: pero esto no me alcanza ahora, porque tengo un dato variable, entonces despues agrego... ahora ya he leido la foto (como aclare no se que tipo seria este photobuffer ![]() Ahora bien, existe algun tipo de datos para que pueda trabajar con el registro en forma directa (creo que para los bmp hay un tipo de datos tbitmap si no me equivoco... pero esto es jpg...) mi idea es no hacer ese read de ser posible (el porque? tengo clases armadas en las que paso el registro en forma directa para ser procesado y bueno me genera varias modificaciones...), y tener todo encapsulado en un registro donde Photo sea de algun tipo jpg o algo asi... no se si esto esta inventado o no queda otra que leerlo "artesanalmente".. Espero se entienda mi pregunta!... Muchas gracias |
#2
|
||||
|
||||
Creo que la forma en la que lo estas haciendo es correcta. Primero lees un record, con un tamaño conocido, y una vez obtienes el tamaño de la imagen que viene a continuación lees la imagen. Es el mismo método que yo mismo usaría.
Lo que no entiendo muy bien es donde esta problema, aunque añadieras un campo mas (TBitmap o TJPEGImage) este solo seria un puntero a ese objeto, tu tendrías que crear el objeto y leer la imagen desde el fichero. Yo creo que deberías de ir un poco mas allá y empezar a utilizar clases (objetos) en vez de records para manejar estas estructuras un poco complicadas. Por último, y si mi consejo de utilizar objetos no te convence, utiliza un record con un tamaño variable, gracias al milagro de los punteros. Declara un record tal que así:
Y un puneto como este:
Ahora solo tienes que leer los primeros campos como hacias antes, obtener el tamaño de la imagen, reservar tanta memoria como necesites para guardar los campos y la imagen, y guardar en ella los campos y la imagen. Ahora a través de los campos del puntero tendrás acceso a todos los campos del record y a los datos de la imagen. Perdona que no te ponga código, pero ando un poco ocupado. ![]() |
#3
|
||||
|
||||
![]() Oks!, a ver... en cuanto al tema de la clase... es factible implementar algo como esto? (perdon, no se si estaremos bien, si es lo que me querias decir...)
Veamos...
Con esto, si es que funciona podria cargar la foto dentro de la clase llamandola así, desde el metodo que recorro el memorystream:
Bueno... no se si alcanzo a explicarme de acuerdo a lo que me dices domingo... Fijate que te parece, sin apuros, y cuando puedas!!(logicamente todos estamos ocupados en nuestras cuestiones ...!), me gustaria ver ese "poco de codigo" que siempre aportas ![]() Saludos!!! |
![]() |
|
|
![]() |
||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Record Key/Deleted | Ricardo Alfredo | Varios | 4 | 13-03-2008 11:08:35 |
variable dentro de una variable | molinero1 | Varios | 3 | 23-04-2007 12:44:48 |
REcord/key deleted | Luis Castillo | Varios | 1 | 02-11-2005 00:22:37 |
evento on new record? | istradlin | Conexión con bases de datos | 8 | 12-04-2005 23:15:00 |
Comparar dos RECORD | oworty | Varios | 3 | 23-11-2004 15:18:33 |
![]() |
|