|
Página 1 de 2
|
Tipos De Archivos Que Maneja Gambas2
Autor |
Mensaje |
jsbsan
Analista Programador
Registrado: Septiembre 2009
Mensajes: 4175
Edad: 51 Ubicación: dos hermanas, sevilla
|
Tipos De Archivos Que Maneja Gambas2
Hola, os explico mi duda:
Yo aprendí basic con una versión llamada Marllad BASIC (del Amstrad PCW). Esta versión de basic tenia 3 tipo de archivos de almacenamiento de datos:
1) Ficheros secuencial
Es el que utilizamos normalmente en gambas (o por lo menos es el que comenta el libro de gambas, de Campos/Redrejo)
2) Ficheros de acceso aleatorio
Es un tipo especial de archivo secuencial,donde definiamos registros de unas logintudes determinadas (y fija) y que luego se podian acceder a ellos mediante un numero. O sea podiamos decir lee el registro 15, y leia la información que contenia el registro 15, sin llegar a leer el 1,2,3, hasta llegar al 15.. ¿me entendeis?
3) Ficheros de acceso aleatorio por claves (Jetsam)
Este era un poco mas especial, ya que contenia dos archivos de acceso aleatorio uno con indices y otro con la informacion, interrelacionados, vamos, creo yo que era lo mas parecido a manejar una "base de datos"... en aquella época..ya que cumplia ser multiusuario, aunque no tenia su propio lenguaje como el SQL...
En fin, todo esto es para preguntaros ademas del secuencial, ¿que mas tipos de archivos, puede manejar (abrir, cerrar, añadir) el gambas?
Gracias...
|
#1 Miercoles, 10 Noviembre 2010, 09:53 |
|
|
shordi
Analista Programador
Registrado: Septiembre 2009
Mensajes: 4982
Edad: 64 Ubicación: Albacete
|
Re: Tipos De Archivos Que Maneja Gambas2
Pues no sé... todo lo que no sean archivos planos ascii... debería ser incluído en una base de datos. Lo demás es volver a la prehistoria... Esos ficheros son los que yo manejaba allá por los años 80 y tenían complicados mantenimientos, corrupciones, enlentecimientos, etc. etc.
Si necesitas estructuras en tus datos utiliza una base como sqlite o la que prefieras, ocupa casi lo mismo que un archivo, es soportada por gambas y ofrece casi lo que una base de datos "de verdad".
Todo lo demás, creo, es volver al jurásico innecesariamente.
(Aunque me temo que todo aquel que no ha manejado nunca una base de datos no estará de acuerdo conmigo, pero bueno, nadie dice que los remedios de la abuela no funcionen en parte... pero si estás enfermo acude al médico, digo.)
Suerte
=================== No podemos regresar
|
#2 Miercoles, 10 Noviembre 2010, 17:31 |
|
|
soplo
Analista Programador
Registrado: Septiembre 2009
Mensajes: 843
Edad: 44
|
Re: Tipos De Archivos Que Maneja Gambas2
Implementar un sistema ISAM por ejemplo es muy sencillo. Basta con utilizar un array que actúe como índice de un texto. La clave sería el número de item del array y contendría la línea en la que se encuentra la información buscada. Se puede montar algo así sin dificultad.
Otra cosa es que merezca la pena claro.
|
#3 Miercoles, 10 Noviembre 2010, 18:28 |
|
|
jsbsan
Analista Programador
Registrado: Septiembre 2009
Mensajes: 4175
Edad: 51 Ubicación: dos hermanas, sevilla
|
Re: Tipos De Archivos Que Maneja Gambas2
¿estonces puede manejar de forma binario los archivos? ¿como? ¿donde puedo buscar ayuda? Pasarme algun enlace...
Gracias
|
#4 Jueves, 11 Noviembre 2010, 00:17 |
|
|
soplo
Analista Programador
Registrado: Septiembre 2009
Mensajes: 843
Edad: 44
|
Re: Tipos De Archivos Que Maneja Gambas2
Los archivos binarios (como los de texto) se leen de forma secuencial.
Otra cosa es que tu te puedas crear un índice en un array donde guardes la posición del dato que buscas y puedas operar con ese array a modo de índice pero la lectura es secuencial.
Por ejemplo recuerdo que puse un ejemplo de leer un archivo PNG.
Tu te haces un array de X entradas en las que guardas la posición de inicio del bloque IHDR, PLTE, IDAT, ...
Cuando necesitas algún dato que se encuentra en el bloque IHDR miras en ese array y ves que su posición es a partir del segundo byte y que tiene una longitud de 13 bytes. Pues ya sabes lo que tienes que leer y no necesitas procesar todo para llegar hasta allí. Primero lees 1 byte y luego lees 13 bytes y ya está. O bien lees de un golpe 13 bytes en un string y haces un right para quedarte con los 12 de la derecha. Lo que no puedes hacer es ir directamente al bite 2. Para ello necesitas situar partir de la posición actual y desplazarte n bytes atrás o adelante para llegar a donde quieres llegar.
Ese tipo de cosas puede merecer la pena en función de que necesites hacer muchas lecturas adelante y atras, pero la mayoría de esos casos creo que será mas eficiente hacerlo en una base de datos. Tiene sentido si hs decidido que tu aplicación no necesite base de datos para hacerla mas ligera.
Pero vamos, yo no haría de esto cátedra. Lo que pasa es que en programación nunca se debe decir de este agua no beberé. Todavía recuerdo cuando me explicaron la recursividad y yo pensé "esto no lo necesitaré nunca" ja ja ja
|
#5 Jueves, 11 Noviembre 2010, 02:54 |
|
|
jsbsan
Analista Programador
Registrado: Septiembre 2009
Mensajes: 4175
Edad: 51 Ubicación: dos hermanas, sevilla
|
Re: Tipos De Archivos Que Maneja Gambas2
Gracias, Soplo, por tus explicaciones...
No se lo que significan las palabras IHDR, PLTE, IDAT, supongo que son zonas del archivo .PNG.
Citar: Tiene sentido si has decidido que tu aplicación no necesite base de datos para hacerla mas ligera.
El sentido de mi pregunta iba por ahí, aunque no sabia que los ficheros binarios, también su lectura era secuencial....
El tema era desarrollar una nueva clase o control para añadir este tipo de lectura a gambas (o por lo menos para mis programas)...
Echare un vistazo a tu de leer archivo .PNG.
Saludos
|
#6 Jueves, 11 Noviembre 2010, 09:52 |
|
|
soplo
Analista Programador
Registrado: Septiembre 2009
Mensajes: 843
Edad: 44
|
Re: Tipos De Archivos Que Maneja Gambas2
Hola
Efectivamente son zonas de ese archivo. Hay un byte donde se informa de la anchura y otro donde se informa de la altura. No tienes que leer el gráfico entero para saber el tamaño de un png. Basta con leer ese par de bytes, pero hay que saber donde están.
Lo que hice aquí es coger un pene y esconderle un texto oculto que nadie pudiera ver y que otra persona leyendo ese archivo pudiera obtener ese mensaje oculto. Naturalmente no se nota a la vista.
Esteganografía en PNG con Gambashttp://foro.gambas-es.org/kb.php?mode=article&k=11
Lo que hice es lo de menos. Lo de mas es como se lee la información que necesito.
Para mas información sobre ficheros binarios te dejo el siguiente enlace
Ficheros binarios en gambas
|
#7 Jueves, 11 Noviembre 2010, 14:45 |
|
|
jsbsan
Analista Programador
Registrado: Septiembre 2009
Mensajes: 4175
Edad: 51 Ubicación: dos hermanas, sevilla
|
Re: Tipos De Archivos Que Maneja Gambas2
Soplo:
No he entendido bien tu mensaje....
Citar: Lo que hice aquí es coger un pene y esconderle
Eso.... de pene .... no me suena en gambas2....
Nota:
Impresionante tu entrada de Esteganografia en PNG, aqui vamos a salir todos como auntenticos espias ....muy bueno....
última edición por jsbsan el Jueves, 11 Noviembre 2010, 18:23; editado 1 vez
|
#8 Jueves, 11 Noviembre 2010, 18:17 |
|
|
soplo
Analista Programador
Registrado: Septiembre 2009
Mensajes: 843
Edad: 44
|
Re: Tipos De Archivos Que Maneja Gambas2
je je je.
Citar: Lo que hice aquí es coger un pene y esconderle
joer!!!
Lo que hice aquí es coger un png y esconderle ...
No se como pudo salir eso ja ja ja, pero para los mal pensados decir que escribo muy rápido con el teclado y sin mirar. Por eso a veces cometo errores pero como este nunca. Si en vez de eso hubiera quedado pgng nadie se mosquearía pero alguno andará pensando ... quien sabe lo que andará pensando
Pues no.
|
#9 Jueves, 11 Noviembre 2010, 18:29 |
|
|
shordi
Analista Programador
Registrado: Septiembre 2009
Mensajes: 4982
Edad: 64 Ubicación: Albacete
|
Re: Tipos De Archivos Que Maneja Gambas2
=================== No podemos regresar
|
#10 Jueves, 11 Noviembre 2010, 19:39 |
|
|
|
Temas parecidos
Temas parecidos
|
Página 1 de 2
|
Usuarios navegando en este tema: 0 registrados, 0 ocultos y 1 invitado Usuarios registrados conectados: Ninguno
|
No puede crear mensajes No puede responder temas No puede editar sus mensajes No puede borrar sus mensajes No puede votar en encuestas No puede adjuntar archivos Puede descargar archivos No puede publicar eventos en el calendario
|
|
|
|
|