Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Sauvegarder une table de hachage en fichier

5 réponses
Avatar
Bruno Ethvignot
Bonjour,

Quel est la meilleur méthode pour sauvegarder une table de hachage
dans un fichier, et pouvoir plus tard relire ce fichier dans
une table de hachage (avec la même structure de données bien entendu) ?

J'ai cru que comprendre que le module Data::Dumper pourrait-être
utilisé, mais je n'arrive pas à relire le fichier dans une table
de hachage.

Peut-être que l'utilisation de fichiers db serait une meilleure
solution ? Bien ma table de hachage contient elle même d'autres
tables.

Merci pour toute aide
--
Bruno Ethvignot - *bruno* arrobe *tlk* point *fr*
http://mozilla.tlk.fr/contact.php
http://linux.tlk.fr/contact.php

5 réponses

Avatar
Bruno Ethvignot
Bruno Ethvignot wrote:
J'ai cru que comprendre que le module Data::Dumper pourrait-être
utilisé, mais je n'arrive pas à relire le fichier dans une table
de hachage.


Finalement j'ai trouvé, y fallait jute initialiser trois
petites variables du module Data::Dumper

L'écriture :

#!/usr/bin/perl
use strict;
use Data::Dumper;
$Data::Dumper::Purity = 1;
$Data::Dumper::Indent = 0;
$Data::Dumper::Terse = 1;


if (open (FICHIER, '>'.$fichier)) {
print FICHIER Dumper ($mon_hash);
close FICHIER;
}


La lecture :

#!/usr/bin/perl
use strict;
use File::stat;
use IO::File;
use Data::Dumper;

my $fichier = lecture ($nom_fichier);
my $mon_hash = eval ($fichier);
print $mon_hash->{clef1}->{clef2}->{clef3};

sub lecture {
my ($fichier) = @_;
my ($st, $content, $content_length);
$content_length = 0;
$st = stat ($fichier);
next unless (defined ($st));
open (F, $fichier);
sysread F, $content, $st->size, $content_length;
close (F);
$content_length += $st->size;
return $content;
}


A+
--
Bruno Ethvignot - *bruno* arrobe *tlk* point *fr*
http://mozilla.tlk.fr/contact.php
http://linux.tlk.fr/contact.php

Avatar
Samuel Mouniée
Bonjour,

Bruno Ethvignot wrote:

Bonjour,

Quel est la meilleur méthode pour sauvegarder une table de hachage
dans un fichier, et pouvoir plus tard relire ce fichier dans
une table de hachage (avec la même structure de données bien entendu) ?

J'ai cru que comprendre que le module Data::Dumper pourrait-être
utilisé, mais je n'arrive pas à relire le fichier dans une table
de hachage.

Peut-être que l'utilisation de fichiers db serait une meilleure
solution ? Bien ma table de hachage contient elle même d'autres
tables.

Merci pour toute aide


Data::Dumper permet de serialiser une structure perl. pour la
deserialiser/relire il faut utiliser "$var = do fichier" ou faire un
"eval" de la chaine.

Padkoa,

.s'nuoM

Avatar
Francois Wisard
On Sat, 16 Aug 2003 14:41:50 +0200, Bruno Ethvignot wrote:

Bonjour,

Quel est la meilleur méthode pour sauvegarder une table de hachage
dans un fichier, et pouvoir plus tard relire ce fichier dans
une table de hachage (avec la même structure de données bien entendu) ?


use Storable; #module disponible dans toutes les bonnes crèmeries
%s= %{ retrieve("$dir/seen.dat") }; #pour charger un fichier
store(%s, "$dir/seen.dat"); #pour enregistrer

Yapaplusimple ©


--
Existe-t-il un numéro vert où ceux qui débuttent sur les forums du web
peuvent poser des questions ? Ce forum de conseils est très bien, mais
il serait bon de pouvoir discuter de vive voix avec des conaisseurs.
-+-Le <http://www.le-gnu.net>: Le club des connaisseurs de neuneux -+-

Avatar
Rafael Garcia-Suarez
Samuel Mouniée wrote in fr.comp.lang.perl :
Data::Dumper permet de serialiser une structure perl. pour la
deserialiser/relire il faut utiliser "$var = do fichier" ou faire un
"eval" de la chaine.


On peut utiliser le module Storable également. Le fichier produit est
binaire.

Avatar
Bruno Ethvignot
Francois Wisard wrote:
use Storable; #module disponible dans toutes les bonnes crèmeries
%s= %{ retrieve("$dir/seen.dat") }; #pour charger un fichier
store(%s, "$dir/seen.dat"); #pour enregistrer
Yapaplusimple ©


Merci c'est *exactement* ce qu'il me fallait :-)

Yapaplusimple et en plus ça à l'air plus optimisé que Data::Dumper !

(merci également à Rafael qui m'a aussi orienté vers le module Storable)

Bonne nuit
--
Bruno Ethvignot - *bruno* arrobe *tlk* point *fr*
http://mozilla.tlk.fr/contact.php
http://linux.tlk.fr/contact.php