Thread Empfehlung Datenbank als Datei (37 answers)
Opened by bianca at 2019-10-20 19:55

rosti
 2019-10-31 08:34
#190831 #190831
User since
2011-03-19
2725 articles
BenutzerIn
[Homepage]
user image
Genau. Grundlagen der Serialsierung und Wiederhestellung von Daten sind Bytewertigkeiten. So erzeugt pack "N" stets genau 4 Bytes für jede Zahl zwischen 0 und 0xFFFFffff.

Was letztendlich die Länge der folgenden Bytesequenz kodiert. Eine Hash kannst z.B. so serialisieren:

Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
use IO::String;
my $io = IO::String->new;
# Serialize Key Value
foreach my $k( keys %ENV){
    my $v = $ENV{$k};
    $io->print( pack("NN", length $k, length $v).$k.$v );
}

# wiederherstellen
$io->seek(0,0);
my %env = ();
while( read($io, my $buffer, 8) ){
    my ($klen, $vlen) = unpack "NN", $buffer;
    read($io, my $key, $klen);
    read($io, my $val, $vlen);
    $env{$key} = $val;
}

print Dumper \%env;


Also immer abwechselnd die Stringlängen und dann die Strings -- einfach hintereinanderweg.


MFG

View full thread Empfehlung Datenbank als Datei