• Publicidad

Persistencia de Objetos

Así que programas sin strict y las expresiones regulares son otro modo de hablar. Aquí encontrarás respuestas de nivel avanzado, no recomendable para los débiles de corazón.

Persistencia de Objetos

Notapor eddycito » 2007-08-06 14:47 @657

Al programar en GTK2-Perl surge la necesidad de hacer persistencia de objetos o sea una vez terminado tu trabajo dentro del programa hacer que el programa guarde tu trabajo para luego después poder abrirlo como si fuera un documento Word.

La verdad no sé como podría hacerlo, alguien sabe algo de persistencia de objetos.

Por favor, necesito ayuda

Bueno tengo un objeto de Perl que entre sus atributos tiene items de Gnome2::Canvas:

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
$object = { imagen => Gnome2::Canvas::Item->new($root,'Gnome2::Canvas::Pixbuf',
pixbuf => $encendido,
x => $ejex,
y => 100.0,
width => $encendido->get_width,
height => $encendido->get_height,
anchor => 'center',
),
enlaces => [],
};
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4


estos objetos a la vez son añadidos a un arreglo:

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
push(@items,$object);
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4


y también se conectan a eventos de ratón:

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
$items[$contador-1]->{imagen}->signal_connect(event => \&item_event,$items[$contador-1]);
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4


Me gustaría adjuntar una imagen de lo que quiero guardar pero no encontré la opción de adjuntar archivo.

Por favor, una ayuda.
eddycito
Perlero nuevo
Perlero nuevo
 
Mensajes: 16
Registrado: 2007-08-06 14:31 @646

Publicidad

Notapor kidd » 2007-08-06 15:05 @670

Hola,

Bienvenido al foro de Perl en Español.

Para tu problema con la persistencia de objetos, te recomiendo que cheques el módulo Persistent que te brinda la funcionalidad que necesitas.

También lo podrías lograr usando el Data::Dumper

Saludos
Uriel Lizama Perl programmer fundador de Perl en Español
Perl Programming Language
Avatar de Usuario
kidd
Creador de Perl en Español
Creador de Perl en Español
 
Mensajes: 1166
Registrado: 2003-10-15 16:52 @744
Ubicación: México

Notapor eddycito » 2007-08-07 23:16 @011

Gracias, Kidd, por la ayuda. ¿Podrías guiarme un poco más? Por favor, ¿cómo podría usar Persistent en Gnome2::Canvas para Perl?

Para guardar los items de Gnome canvas, ¿es posible hacer con Persistent que se dibujen todas las figuras que hice dentro del canvas, al iniciar mi programa en otra oportunidad con la opción Abrir que tienen casi la mayoría de programas? :?:
eddycito
Perlero nuevo
Perlero nuevo
 
Mensajes: 16
Registrado: 2007-08-06 14:31 @646

Notapor explorer » 2007-08-08 03:35 @191

Yo creo que eso no puede mantenerse persistente, sino que debes hacer un redibujado de todo el canvas. O guardar el canvas como un elemento gráfico.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Notapor eddycito » 2007-08-08 17:34 @773

Hola Explorer.

Ahora estoy probando Data::Dumper y Compress::Zlib; y XML::Mini::Document; pero al momento de guardar me sale un error en consola así:
Código: Seleccionar todo
*** unhandled exception in callback:
***   Can't call method "gzwrite" on an undefined value at prueba.pl line 737.
***  ignoring at prueba.pl line 145.


No sé por qué sale el error.
eddycito
Perlero nuevo
Perlero nuevo
 
Mensajes: 16
Registrado: 2007-08-06 14:31 @646

Notapor explorer » 2007-08-09 02:25 @142

El error dice que estás intentando usar el método "gzwrite" sobre un objeto que está vacío (indefinido).
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España


Volver a Avanzado

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 2 invitados