Adventskalender 10. Dezember 2022 - Über Dos-Programme 2

Smalltalk
Antworten
TuxPeter
Beiträge: 1966
Registriert: 19.11.2008 20:39:02
Lizenz eigener Beiträge: MIT Lizenz

Adventskalender 10. Dezember 2022 - Über Dos-Programme 2

Beitrag von TuxPeter » 10.12.2022 08:13:05

Das heutige Filmchen geht um die sog. Datenbanken und die Anwendungen, die ich damit gestrickt habe. Vielleicht wieder ein bisschen lang; anscheinend geht es nicht kürzer. Wenn ich damals meinen Kram irgendwelchen Interessanten vorgeführt habe, war das auch so etwa der Zeitrahmen - vermutlich steckt das irgendwie drin. Übrigens eignete sich mein System hervorragend für das heute so genannte "Rapid Prototyping".

Programmanpassungen für die jeweiligen Aufgaben direkt über den Source-Code finde ich in vielen Fällen leichter und sinnvoller als über endlose Konfigurationsdateien, die dann irgendwann unübersichtlich und widersprüchlich werden. Ein Argument für Open Source. Chaos kann man natürlich auch direkt in den Sources anstellen, aber wenn ich damals meine Projekt-Konferenzen mit mir selber hatte, hat mir wenigstens keiner reingegedet. Nun schaut Euch halt an, was daraus geworden ist, jedenfalls im Überblick.

Die Index-Verwaltung beruht auf Borlands "Database-Toolbox", die ich dann für die spätere Turbopascal-Versionen angepasst habe, vor allem in den Datentypen. Diese waren im Original arg bescheiden ausgelegt, kein Wunder bei dem doch recht begrenzten Turbo3. Man hätte diesen "B-Tree" damals auch irgendwo abtippen können, es gab so etwas in Pascal-Hochganz-Heftchen an den Kiosken, deren Qualität ich aber nie getestet habe. Abtippen hat mir nie so rechten Spaß gemacht. Fürs Selber-Entwickeln war das mir allerdings ein "wenig" zu hoch. Zum Beispiel das Erweitern und Teilen der einzelnen Index-Blöcke, wenn die Datenmenge wächst, ist schon ziemlich sophisticated. Der Rest der Software ist aber komplettes Homegrown-Gewächs.

Die Felder der einzelnen Datensätze sind vorwärts verkettet, und zwar ziemlich simpel über die Längenangaben im 1. Byte der Pascal-Strings, dem Längenbyte. Das ging selbst auf langsamen Rechnern ohne merkliche Verzögerung. Und es senkte den gesamten Platzbedarf enorm.
Alle Daten sind in solchen Strings gelandet, ihre Interpretation erfolgte über die jeweiligen Formatangaben in den Masken bzw. den Anwenderprogrammen, wodurch die hohe Flexibilität erst möglich wurde. Es gab z.B. die Möglicheit, in den Datenfeldern auch Dateinamen abzulegen, welche dann, z.B. in einem Serienbrief, entsprechend ausgepackt und eingefügt wurden. Man konnte damit z.B. bei einem Mahn-Lauf für säumige Zahler in die Stammdatensätze einfach Mahnstufen als Kürzel eingeben, womit dann die verschiedenen Mahntexte abgerufen werden. Damit ist nebenbei auch die Begrenzung auf 255 Zeichen pro Datenfeld überwunden.

Noch ein paar Anmerkungen zum gestrigen Editor: Nicht vorgeführt habe ich z.B. die Funktion, Textbausteine einfach als include-Dateien, einzufügen, wie wir das schon ewig und drei Tage von der Programmierung her kennen. Ich verstehe heute noch nicht, warum die ganzen Dinosaurier-Office-Pakete ihre Textbausteine als einen andersartig zu bedienenden Extra-Bereich führen, es sind doch einfach Texte wie alle anderen auch. Und wenn man sie schützen will, kann man sie Read-Only setzen, das ging in DOS auch schon.

Die Speicher-Struktur des Editors beruht übrigens auf einer Pointer-Tabelle, deren Elemente auf die einzelnen Strings zeigen. Der Speicherplatz wird immer in 16-Byte-Blöcken zugeordnet und freigegben, (mit "GetMem" und "FeeMem" im sog. "Heap") was eine Fragmentierung des Speichers wirkungsvoll verhindert.

Mit dem gleichen Trick, dann aber mit 16-Bit-Längenangaben, hätte ich natürlich auch die Satzlängen der einzelnen Datensätze variabel gestalten können, aber das war nie nötig erschienen.

In die Editor-Toolbox von Borland hatte ich damals übrigens auch mal hineingeschaut, es gab aber nichts, was mir dort besser gefallen hätte als mein eigener Kram.

https://jodre.de/nostal-dos-2/

Zum Schluss: Vermutlich habe ich damals etliche Male sozusagen das Rad neu erfunden, aber es gab kein Internet zum Nachschauen, von irgendeiner Communitiy war mir auch nichts bekannt, und die Infos aus Zeitschriften waren auch nicht immer wirklich brauchbar.

Benutzeravatar
Meillo
Moderator
Beiträge: 8818
Registriert: 21.06.2005 14:55:06
Wohnort: Balmora
Kontaktdaten:

Re: Adventskalender 10. Dezember 2022 - Über Dos-Programme 2

Beitrag von Meillo » 10.12.2022 17:08:44

Herzlichen Dank auch fuer diesen Beitrag. Natuerlich ist er mehr im Vollkornbrot-Style, also nichts fuer mal schnell zwischendurch, aber dafuer mit gehaltvollem Inhalt. ;-)

Ich finde es beeindruckend, was du damals alles zusammengeschaubt hast! Aus welcher Zeit etwa stammen die Programme denn etwa? Dann wuerde mich noch interessieren, was der Anlass war, mit der Datenbank zu beginnen. War das ein Kundenauftrag oder hast du die Datenbank einfach mal gebaut, um damit dann verschiedene konkrete Anwendungen fuer Kunden umsetzen zu koennen? War es fuer dich von vorne herein klar, dass du eine generische Datenbank haben willst, die dann vielfaeltig genutzt werden kann, oder kam das erst spaeter dazu, als du deinen zweiten Kunden dafuer hattest?


Interessant finde ich, wie zuhause ich mich mit diesen Arten von Text-User-Interfaces fuehle. Und zugleich wird mir bewusst, wie erschreckend beschaenkt DOS im Vergleich zu Unix war (wobei auch bei Unix anfangs auch nicht alles fuer alle verfuegbar war, bevor BSD und GNU kamen).
Use ed once in a while!

TuxPeter
Beiträge: 1966
Registriert: 19.11.2008 20:39:02
Lizenz eigener Beiträge: MIT Lizenz

Re: Adventskalender 10. Dezember 2022 - Über Dos-Programme 2

Beitrag von TuxPeter » 10.12.2022 23:59:23

Vielen Dank für Deinen freundlichen Kommentar!

Genau kann ich den Zeitrahmen meiner Entwicklungen nicht benennen, habe aber soeben eine "EDITOR.EXE" gefunden, der eine einfache Vorstufe des gezeigten darstellt, und der sich mit
"JoDre's Edit Version 18.10.88" meldet.
Und im Kopf der Datenbank-Unit steht folgendes:

Code: Alles auswählen

(****************************************************************)
(*                     DATABASE TOOLBOX 4.0                     *)
(*     Copyright (c) 1984, 87 by Borland International, Inc.    *)
(*                                                              *)
(*                     TURBO ACCESS UNIT                        *)
(*                                                              *)
(*           modified by JoDre 12/89, 4/90, 12/92               *)
(****************************************************************)
unit U_Access;
interface
uses U_input, u_msk, CRT, DOS;
Die eigenen Eingabe- und Maskenroutinen sind über meine Units U_input und U_msk dort schon eingeflochten, und sei es nur für die Definition von Datentypen und Konstanten.
Die andere Frage, was zuerst war, Kundenauftrag oder Programmangebot, ist ein wenig wie das Problem von der Henne und dem Ei. Das hat sich sozusagen wechselseitig entwickelt. Mitte der 90er Jahre sind die letzten Datierungen in den Quellen, vom Datei-Datum kann man da ja nicht unbedingt ausgehen.

Freundliche Grüße,
TuxPeter

tobo
Beiträge: 1996
Registriert: 10.12.2008 10:51:41

Re: Adventskalender 10. Dezember 2022 - Über Dos-Programme 2

Beitrag von tobo » 11.12.2022 00:24:06

Würde mich ja mal interessieren - bist du denn eigentlich noch mit Pascal unterwegs? FPC würde sich ja nativ unter Linux anbieten; oder läuft bei dir womöglich irgendeine Virtualisierung mit Turbo oder Kylix?

Benutzeravatar
ralli
Beiträge: 3919
Registriert: 02.03.2008 08:03:02

Re: Adventskalender 10. Dezember 2022 - Über Dos-Programme 2

Beitrag von ralli » 11.12.2022 08:24:24

Turbo Pascal 1 bis 3 (und ich glaube auch 5) gibt es heute kostenlos zum Download. Es läuft unter dosbox bei mir einwandfrei. Danke TuxPeter für Deinen Beitrag. Wir haben wohl eine identische Entwicklung nur mit unterschiedlichen Werkzeugen durchgemacht. Ich habe mich sehr viel mit Borland Produkten zur damaligen Zeit beschäftigt, mich dann aber hauptsächlich auf die Datenbankprogrammierung mit dBase III Plus sowie dBase IV konzentriert. Damit habe ich in der Automobilindustrie Audit Software entwickelt für die Qualitätsplanung/Qualitätssicherung. Heute arbeite ich noch mit Objektpascal (Lazarus). Kylix hatte ich mal so um 2002 käuflich erworben. Wurde dann ja auch von Borland eingestampft.

Gruß ralli
Wer nicht lieben kann, muß hassen. Wer nicht aufbauen kann muß zerstören. Wer keine Brücken baut, muß spalten.

TuxPeter
Beiträge: 1966
Registriert: 19.11.2008 20:39:02
Lizenz eigener Beiträge: MIT Lizenz

Re: Adventskalender 10. Dezember 2022 - Über Dos-Programme 2

Beitrag von TuxPeter » 11.12.2022 10:02:02

Danke für Euer Interesse!
@Tobo
Mit Freepascal bin ich auch heute noch unterwegs, Lazarus mochte ich nicht, aber Geaney als Entwicklungsumgebung finde ich klasse. Mein letztes größeres Pascal-Projekt war ein Programm, welches Frequenzmodulation in WAVE-Dateien auswertet. (Länger vor den im Collatz-Beitrag gezeigten Zahlenreihen-Spielen) Für die genaue Ermittlung von Gleichlaufschwankungen von Plattenspielern z.B. wurde eine konstante Frequenz über Audacity aufgenommen, als Wave abgespeichert und dann von dem Programm ausgewertet. Da schon eine simple Soundkarte in dieser Hinsicht um mehrere Größenordnungen genauer ist als die beste Elektromechanik, sind damit recht genaue Messungen möglich.

@Ralli: Mit dBase hatte ich auch zu tun. Ich hatte bei einer Anwendung im dBase-Format vorliegende Daten mit Clipper-compilierten dBase-Programm ausgelesen und in mein Datenbankformat überführt.

Benutzeravatar
smutbert
Moderator
Beiträge: 8331
Registriert: 24.07.2011 13:27:39
Wohnort: Graz

Re: Adventskalender 10. Dezember 2022 - Über Dos-Programme 2

Beitrag von smutbert » 12.12.2022 23:31:50

Diese typische DOS-Optik mit dem niedrig aufgelösten Textmodus zu sehen freut mich jedes Mal ungemein. Es erinnert mich an den Spass, den ich hatte als ich das erste Mal richtig mit Computern in Kontakt gekommen bin.

Mir hat es auch sehr gefallen.

Antworten