AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Aha Momente

Ein Thema von himitsu · begonnen am 27. Sep 2022 · letzter Beitrag vom 31. Mär 2023
Antwort Antwort
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.342 Beiträge
 
Delphi 12 Athens
 
#1

AW: Aha Momente

  Alt 29. Sep 2022, 13:09
BJSON/BSON ist technisch schon ein bissl wie die DFM im Delphi

Ein Byte für den Typ und dann die Daten, also in den Daten steht drinne, wie man sie interpretiert.

Binäre Daten sind eh bissl blöd.
Wenn, dann vielleicht ein ORM um TReader/TWriter (zwar auch binär, aber inkl. Formatierungdaten und optional auch als Text-Version)

Aber dann vielleicht eher in Richtung BSON (binäres JSON) oder CompressedXML,
wobei man TReader (das was die DFMs im Delphi nutzen) auch als typsicherere Variante des JSON/BSON ansehen könnte.
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
Benutzerbild von dummzeuch
dummzeuch

Registriert seit: 11. Aug 2012
Ort: Essen
1.679 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#2

AW: Aha Momente

  Alt 29. Sep 2022, 13:25
Im Buch "Algorithms and Data Structures" (von 2001, zweite Auflage von 2006) beschreibt Julian Bucknall ein sich selbst dokumentierendes Dateiformat. Das ist ein File of Records, welches zusätzlich einen Header enthält, der den Record beschreibt. Wenn man die Struktur dieses Headers kennt, kann man einen generischen Reader dafür schreiben (und theoretisch auch einen Editor)

In der Firma benutzen wir ein auf dieser Idee basierendes Dateiformat, welches noch zusätzliche Angaben zur Datei und außerdem eine Prüfsumme im Header enthält. Das ist extrem praktisch, da unser Reader dafür beliebige unserer Datendateien anzeigen und auch grafisch darstellen kann.

Hauptvorteil: Durch binäres Format deutlich kleinere Dateien als in irgendwelchen Textformaten.
Thomas Mueller
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.342 Beiträge
 
Delphi 12 Athens
 
#3

AW: Aha Momente

  Alt 29. Sep 2022, 13:30
Jo, kleiner, aber vorallem auch schneller/einfacher zu lesen, weil man nichts erst parsen muß, bzw. auch Fehlerunanfälliger (besonders, wenn auch noch inkl. Prüfsumme).

Binäre-DFM, BSON, CompressedXML, ...
Text-DFM, JSON, XML, ...
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.927 Beiträge
 
Delphi 12 Athens
 
#4

AW: Aha Momente

  Alt 29. Sep 2022, 13:31
Im Buch "Algorithms and Data Structures" (von 2001, zweite Auflage von 2006) beschreibt Julian Bucknall ein sich selbst dokumentierendes Dateiformat. Das ist ein File of Records, welches zusätzlich einen Header enthält, der den Record beschreibt. Wenn man die Struktur dieses Headers kennt, kann man einen generischen Reader dafür schreiben (und theoretisch auch einen Editor)
DBase?

Ja, ich habe so etwas auch schon selbst geschrieben, aber damals kannte ich Datenbanken, z.B. eben auch einfache dateibasierte Datenbanken, noch nicht. Die machen ja genau das, was du dort beschrieben hast (ja, ohne Unterstrukturen, ich weiß). Und darauf aufsetzende ORMs können dann auch damit arbeiten.
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.629 Beiträge
 
Delphi 12 Athens
 
#5

AW: Aha Momente

  Alt 29. Sep 2022, 13:47
War auch mein erster Gedanke
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Benutzerbild von dummzeuch
dummzeuch

Registriert seit: 11. Aug 2012
Ort: Essen
1.679 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#6

AW: Aha Momente

  Alt 29. Sep 2022, 15:18
Im Buch "Algorithms and Data Structures" (von 2001, zweite Auflage von 2006) beschreibt Julian Bucknall ein sich selbst dokumentierendes Dateiformat. Das ist ein File of Records, welches zusätzlich einen Header enthält, der den Record beschreibt. Wenn man die Struktur dieses Headers kennt, kann man einen generischen Reader dafür schreiben (und theoretisch auch einen Editor)
DBase?

Ja, ich habe so etwas auch schon selbst geschrieben, aber damals kannte ich Datenbanken, z.B. eben auch einfache dateibasierte Datenbanken, noch nicht. Die machen ja genau das, was du dort beschrieben hast (ja, ohne Unterstrukturen, ich weiß). Und darauf aufsetzende ORMs können dann auch damit arbeiten.
DBase ist beim Schreiben um ein Vielfaches langsamer als dieses Format, das habe ich längst durchexerziert. Und auf diese Geschwindigkeit kommt es bei der Anwendung an. Beim Lesen ist es auch schneller, aber das wäre nicht so kritisch.
Thomas Mueller
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.927 Beiträge
 
Delphi 12 Athens
 
#7

AW: Aha Momente

  Alt 29. Sep 2022, 16:05
Ja, das stimmt. Meine Variante war auch sehr schnell.
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.629 Beiträge
 
Delphi 12 Athens
 
#8

AW: Aha Momente

  Alt 29. Sep 2022, 16:13
DBase ist beim Schreiben um ein Vielfaches langsamer als dieses Format
Das war auch nicht damit gemeint. dBase hat nur einen ähnlichen Dateiaufbau:
Das ist ein File of Records, welches zusätzlich einen Header enthält, der den Record beschreibt.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.342 Beiträge
 
Delphi 12 Athens
 
#9

AW: Aha Momente

  Alt 1. Okt 2022, 14:08
Ein schönes Aha ist toll,
aber es geht auch andersrum.

https://quality.embarcadero.com/browse/RSP-39576
Je öfter man drauf guckt, um so schlimmer wird es.

Ich guck heute lieber nicht mehr in meine eigenen Codes.

Hatte bestimmt zu oft in der Hilfe abgeguckt.
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
Redeemer

Registriert seit: 19. Jan 2009
Ort: Kirchlinteln (LK Verden)
1.116 Beiträge
 
Delphi 2009 Professional
 
#10

AW: Aha Momente

  Alt 5. Okt 2022, 16:20
Hatte auch gerade einen Aha-Moment und bin immer noch völlig irritiert, weil man function Wupp(Di: array of Integer): string; auch mit einem Integer als Argument aufrufen kann, sofern es sich bei dem Integer nicht um ein Literal handelt.

Delphi-Quellcode:
function Wupp(Di: array of Integer);
begin
  Result := Wupp(Di[0]);
end;
Kompiliert (und führt zu einem Stapelüberlauf, sofern keine überladene Version für Di: Integer existiert).

Welchen Sinn hat das?
Janni
2005 PE, 2009 PA, XE2 PA
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:41 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz