Thread Textdatei mit Inhalt erstellen? (19 answers)
Opened by Naix at 2017-02-02 10:54

rosti
 2017-02-06 08:07
#186044 #186044
User since
2011-03-19
3194 Artikel
BenutzerIn
[Homepage]
user image
Moin;

Mir gehts ja um das Prinzip, modernes Perl und strukturiertes Programmieren wenigstens ansatzweise zu vermitteln ;)

Die Textvariante hab ich übrigens ja auch dabei. Stichwort Serializer. Und siehe da, vom Programmieraufwand ist das gehüpft wie gesprungen -- es gibt keinen Unterschied, es wird lediglich eine andere Funktion aufgerufen.

Genau diese Erfahrung hast Du ja selbst schon gemacht: Du nutzt ein spezielles Modul, weil Du damit nachvollziehen kannst, was es macht.

Abstrakt: Ein Serializer erzeugt aus einem abstrakten Datentyp (Array, Hash...) einen String (Sequenz, Datei...).

Während der abstrakte Datentyp so heißt, weil der Zugriff in den Hauptspeicher über spezielle Methoden beschrieben wird (beim Array z.B. über den Index), heißt die Sequenz so, weil sie sequentiell geschrieben und sequentiell erzeugt wird (Niklas Wirth).

Viele Schichtenmodelle und Datenabstraktionen machen richtig Sinn wenn man sie zweckmäßig verwendet.

Zu Wirth's Zeiten waren Sequenzen noch Lochkarten, heute sind aus den Lochkarten Dateien geworden. Kein Mensch ist damals auf die Idee gekommen, wahlfreien Zugriff (Random Access) auf einer Lochkarte abbilden zu wollen.

Genausowenig macht es Sinn, Random Access in einer Datei (Transport-Layer) abbilden zu wollen.

pack() ist übrigens ganz einfach zu verstehen: pack "C", 0x41; erzeugt ein Byte. Dasselbe Byte kannst Du auch mit sprintf "%c", 0x41; erzeugen.

Code (perl): (dl )
1
2
sprintf "%c%c%c%c", 192,168,3,1; # 4 bytes einer IP-Adresse erzeugen
pack "CCCC", 192,168,3,1;



Viele Wege führen nach Rom ;)

Herzliche Grüße!
Last edited: 2017-02-06 09:48:48 +0100 (CET)

View full thread Textdatei mit Inhalt erstellen?