Programación Web y Scripting > Perl
Persistencia De Objetos
Eddycito:
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 despues poder abrirlo como si fuera un documento word.
La verdad no se como podria hacerlo, alguien sabe algo de persistencia de objetos.
Porfis necesito ayuda
atte. Eddy :rolleyes:
su -:
Que tienes que guardar?
Que elemntos de Gtk2 estas usando?
Se mas explicito y si es posible, pon un ejemplo.
Eddycito:
Bueno tengo un objeto de perl que entre sus atributos tiene items de Gnome2::Canvas:
$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 => [],
};
estos objetos a la vez son añadidos a un arreglo:
push(@items,$object);
y tambien se conectan a eventos de raton:
$items[$contador-1]->{imagen}->signal_connect(event => \&item_event,$items[$contador-1]);
y quiero guardar lo que cree. A continuacion dejo una imagen de lo que quiero guardar.
su -:
Lo primero que debes de hacer es la rutina de guardar... para eso abres un archivo con el flag ">>", guardas el nombre (objeto0, objeto1...), el valor de X, Y y toda la info necesaria:
--- Código: Text --- my $i = 0;sub Guardar { my ($x, $y, $w, $h, $a, $pixbuf) = @_; open FL, ">>$0.conf" or die "$0.conf: $!\n"; #Solo agrega print FL "<Canvas::Pixbuf, Name=objeto$i>\n"; print FL "X:$x\nY$y\nW:$w\nH:$h\nA:$a\nPix:$pixbuf\n"; print FL "</Canvas::Pixbuf>\n"; close FL; $i++;} Cada vez que inicia el prorama debe de leer el archivo (con while y regex) y debujar segun los datos.
Otra forma seria usar XML, pero en este caso no es necesario.
Eddycito:
:hola: Gracias por la ayuda, la verdad no tenia idea de como hacerlo, hay algunos ejemplos donde pueda ver con mas detalle la utilizacion del ejemplo que me das? porfa debe haber algun codigo por ahi.
Navegación
[#] Página Siguiente
Ir a la versión completa