Thread Regulärer Ausdruck matcht nicht korrekt - JSON (10 answers)
Opened by styx-cc at 2017-11-11 17:57

rosti
 2017-11-12 20:14
#187614 #187614
User since
2011-03-19
3194 Artikel
BenutzerIn
[Homepage]
user image
Alles gut, ich verstehe Dich ja auch ;)

Nun, die Grundlagen sind doch höchst interessant. In Fakt ist es nämlich gar nicht das Dateiformat, was die Datenstruktur abbildet, genau da irren sich so ziemlich Alle diejenigen die mit HTML zu tun haben. Entscheidend ist immer, wie das was aus HTML oder auch XML oder JSON gelesen wird, danach im Hauptspeicher liegt -- erst hier reden wir von einer Datenstruktur. So kann man einunddenselben Baum der sich aus den Daten einer XML oder HTML Datei ergibt, auch als CSV abspeichern und mit einem speziellen Algorithmus daraus das Original unzerknittert wiederherstellen.

Eine Solche ist oftmals baumartig und und kann entweder zyklisch, linear oder nichtlinear sein. Nichtlinear heißt auch geschachtelt (nested). Manche Algorithmen zum Serialisieren transformieren nichtlineare Datenstrukturen zunächst in einer lineare, also zyklische Struktur, weil sich zyklische Strukturen einfacher serialisieren lassen.

Wird eine zyklische Struktur serialisiert, hat man innerhalb der resultierenden Bytesequenz ebenfalls sich wiederholende zyklische Sequenzen, sog. Frames, Tupel oder Records. Innerhalb der Tupel gibt es dann den Feldbegriff ganz ähnlich wie in relationalen Datenbanken. Beispielsweise baucht man 3 Felder, wenn man die Daten eines threadbasierten Forums speichern will, egal ob in einer Datei oder in einer Tabelle gespeichert wird. So hat ein ganzer Thread z.B. mal angenommene 200 Records in einer 3 spaltigen Tabelle oder 200 Frames in einer Binärdatei. Wenn man diese Frames an der richtigen Stelle abschneidet, ist das Lesen dieser Datei kein Problem, genauso können Frames auch angehängt werden.

Nach diesem Prinzip funktioniert auch mp3, hier kann man problemlos auf Dateiebene, also direkt in der Sequenz operieren ohne daß man den gesamten Stream in den Hauptspeicher lesen muss (Schneiden von Audiodateien). Das einfachste Beispiel einer zyklischen und linearen Datenstruktur ist das Array. Auch ein Hash ist zyklisch und gerade wir Perler wissen ja, daß ein Hash auch nur ein Array ist. Man kann also einen Hash mit demselben Algorithmus in eine Datei schreiben wie ein Array. Allgemein gesagt kann man JEDE zyklische Datenstruktur in ein Array umwandeln. Und wenn man einen Algorithmus hat der nichtlineare Strukturen in lineare und zyklische Strukturen umwandelt, kann man jede beliebige Datenstruktur als Array in einer Datei speichern.

Hier bestätigt sich die Genialität des Niklaus Wirth. Seine Bücher gibt es noch. Ich habe hier "Algorithmen und Datenstrukturen mit Modula II" da steht im Prinzip dasselbe drin, was ich hier schrieb :)

Schönen Sonntag.
Last edited: 2017-11-12 20:16:29 +0100 (CET)

View full thread Regulärer Ausdruck matcht nicht korrekt - JSON