Harpo 26-09-2025, 20:06
Saludos!
Después de un tiempo alejado del teclado he retomado los proyectos personales que tenía abandonados. El primero ha sido la aplicación para gestionar cómics, y por fin tengo un compresor/descompresor de archivos: Libarchive .

Cómo ya sabrán es una librería para leer, escribir y comprimir distintos formatos de fichero, según la página web de la libreria:
  • tar (read and write, including GNU extensions)
  • pax (read and write, including GNU and star extensions)
  • cpio (read and write, including odc, newc, and afio variants)
  • ISO9660 (read and write, including Joliet and Rockridge extensions, with some limitations)
  • zip (read and write, with some limitations, uses zlib)
  • mtree (read and write, uses separate libraries for creating and verifying cryptographic hashes)
  • shar (write only)
  • ar (read and write, including BSD and GNU/SysV variants)
  • empty (read only; in particular, note that no other format will accept an empty file)
  • raw (read and write)
  • xar (read and write)
  • lha/lzh (read only)
  • rar (read only, original and RAR v5 format)
  • Microsoft CAB format (read only)
  • 7-Zip (read and write)
  • WARC (ISO 28500:2009, read and write)

La librería trata los ficheros como un stream, un conjunto de elementos empaquetados juntos. La definición de las funciones internas está dividida en dos partes: CArchive para las funciones propias del archivo y CEntry para los elementos dentro del archivo, entradas. Además hay un módulo, MArchive, para funciones auxiliares y definición de constantes internas de la librería. No todas las funciones internas de la librería están definidas, todavía queda pulir, limpiar, optimizar y completar. Queda trabajo.

Las clases en Gambas son:
  • GCompress: para gestionar los ficheros. Comprimir, descomprimir, leer, extraer ficheros, hacer backup de directorios.
  • GEntry: para gestionar los elementos dentro GCompress. Ficheros, directorios, enlaces simbólicos.
  • Clases de apoyo para manejar opciones de compresión y lectura, flags para descomprimir ficheros.

Para quién se decida a probar la librería, Libarchive tiene dos conceptos importantes, FORMAT y FILTER. El primero hace referencia al formato del fichero, el segundo a formatos de compresión. Y existen formatos de fichero que además son compresores, compresores que pueden que lo sean o no, se pueden mezclar formatos y compresores, se pueden usar varios compresores dentro de un formato. Además los formatos y compresores tienen distintas opciones de empaquetado, compresión y encriptación. Puede haber ficheros (entradas) con la cabecera encriptada pero no los datos, con los datos encriptados pero no la cabecera ... un lio enorme.

Dentro del proyecto hay una aplicación para jugar con la librería, es un desastre a nivel de código, con mucha basura, pero funcional. Básicamente una prueba de concepto. Y la última pestaña, "Rebuild - Extract file" no es funcional, permite hacerlo todo pero el botón "Rebuild" todavía no hace nada.   Rolleyes

[Imagen: stYBDiNl.png]

[Imagen: 8eTLM6ql.png]

Si alguien se decide a probarla y encuentra algún problema o tiene alguna sugerencia se agradecería el comentario.
Un saludo, Harpo

.gz
GCompress.tar.gz (Tamaño: 80.65 KB Descargas: 2)
omoreno 25-09-2025, 23:13
Saludos colegas.

Retomando temas de Gambas WebForm:

El tercer argumento en el evento Data del objeto WebTable es una clase llamada WebTableData y una de las propiedades de esta clase es Data.Control la cual por defecto tiene un valor Null al cual se le puede asignar un Webcontrol.
La ayuda de Gambas dice: Cuando se asigna un WebControl al Data.Control, el WebControl se creara como una copia.

Con lo anterior si deseamos llenar una tabla con: texto, html, con objetos de tipo WebButton y que quede como en la figura

[Imagen: oycd7aCl.png]

Para crear cada WebButton en cada una de las filas del WebTable se requiere forzosamente un contenedor temporal y luego asignar el WebButton a la propiedad Data.Control, el problema es que si luego borras todos WebButton del contenedor temporal, los WebButton del WebTable pierden el enlace con el evento Click asignado.

¿Alguna idea de como se pueden asignar webControl al Data.Control sin tener que usar con contenedor temporal ?

Les adjunto el código fuente.

Gracias por sus posibles respuestas.
Archivos adjuntos
.gz
WebTableData-0.0.1.tar.gz (Tamaño: 10.64 KB Descargas: 0)
vuott 25-09-2025, 07:36
Os dejo esta pagina.
Se necesita activar los Componentes "gb.map" y "gb.media" de Gambas.

https://www.gambas-it.org/wiki/index.php...la_MapView
Páginas (563):    1 2 3 4 5 563   
Bienvenido, Invitado
Tienes que registrarte para poder participar en nuestro foro.
Recordarme?
Miembros: 290
Último miembro: Linusky
Temas del foro: 1,738
Mensajes del foro: 9,014
Últimos temas
Gambas 3.21.0
Foro: General
Último mensaje por: guizans, Hace 7 horas
Respuestas: 2 - Vistas: 61
Nuevo manual dinámico...
Foro: WebApp/WebForms
Último mensaje por: Shordi, Hace 8 horas
Respuestas: 8 - Vistas: 2,089
Libarchive para Gambas
Foro: Controles/Librerías/Componentes
Último mensaje por: tincho, 13-10-2025, 21:07
Respuestas: 3 - Vistas: 367
Mis computadoras se estàn...
Foro: Hardware & IoT
Último mensaje por: tercoide, 01-10-2025, 21:39
Respuestas: 2 - Vistas: 246
Powered By MyBB, © 2002-2025 MyBB Group.
Made with by Curves UI.