Robert: Für mich unpack - bar!

Guten Abend...

als Perlanfänger habe ich eine kleine Frage... also nicht lachen...

ich habe ein array erstellt, welches ich dann in binärer Form in eine
Datei geschrieben habe...etwa so:

my @Data = ("ich bin text_1", "und ich text_2");
my $Format = "u20 u15";
my $BinData = pack($Format, @Data);
my $TFile = "file.dat";

sysopen(DATEI, $TFile, O_WRONLY | O_EXCL | O_CREAT, 0644) or die $!;
flock(DATEI, LOCK_EX);
print DATEI "$BinData";
close(DATEI);

Nun ist mir aufgefallen, dass ich mir noch keine Gedanken darüber gemacht habe, wie ich die Daten wieder einlesen kann, um sie wieder in ein array zu packen. Meine Versuche dies zu erreichen enden entweder mit einer Fehlermeldung oder damit, dass nur der 1. Text ausgelesen wird. Irgendwie komm ich mit unpack nicht klar. Wie kann ich die unterschiedlichen Formatierungslängen (u20, u15) in eine Schleife stecken?

Ich danke im voraus für jede Hilfe oder Verweise!

Robert.

  1. Wie kann ich die unterschiedlichen Formatierungslängen (u20, u15) in eine Schleife stecken?

    Ich danke im voraus für jede Hilfe oder Verweise!

    Hallo Robert,

    http://www.netzmafia.de/skripten/perl/perl3.html
    Beschreibung, wie Du ein einfaches Template für unpack formulierst.

    http://www.flensburg-treff.de/thema/januar00/perltut-7.html
    Noch'n Beispiel.

    Vielleicht kannst Du was damit anfangen.

    Viele Grüße

    Mathias Bigge

  2. Dear Sir Robert,

    hab' Dein Posting gestern abend schon gelesen, aber nicht geantwortet, weil ich keine unmittelbare Lösung parat hatte.

    Frage: warum eigentlich binär abspeichern? Das kann zwar Perl, ist aber nicht besonders perlish. IMO: Schreib's als Kommaseperierte Liste (CSV). Ggf. Lohnt sich ein Blick auf:

    Text::CSV - comma-separated values manipulation routines
    Text::CSV_XS - comma-separated values manipulation routines
    Bundle::DBD::CSV - A bundle to install the DBD::CSV driver *)
    Boulder - An API for hierarchical tag/value structures **)

    *) DBD / DBI Einarbeitung notwendig - ggf. "Kanonen auf Spatzen"
    **) Boulder ist imvho toll - aber man muß sich einlesen.

    Servus
      K@rl

  3. Hallo Sir Robert,

    wegen:
    http://forum.de.selfhtml.org/?m=54070&t=9766

    hier vier sehr wichtige Links für Dich - unbedingt lesen!
    [link http://forum.de.selfhtml.org/faq/] vollständig lesen(!!), insbesondere:
    [link http://forum.de.selfhtml.org/faq/#Q-11]
    [link http://forum.de.selfhtml.org/faq/#Q-06]
    {link http://forum.de.selfhtml.org/faq/#Q-10]

    Ansonsten empfehle ich Dir die Anschaffung eines guten Perl-Buches oder die Suche nach einem guten Perl-Tutorial im Internet. Das was Du da vor hast mag - imVho - zwar von akademischen Interesse sein, aber es ist .. gelinde gesagt .. Perl-untypisch. Mach's in C. Siehe auch {link http://forum.de.selfhtml.org/faq/#Q-10].

    Grüße
       K@rl