![]() |
AW: Daten.dat daten.dia daten.ix
Wenn der Quellcode vorhanden ist, würde ich davon nur die Record-Definitionen verwenden und die *.DAT's sequentiell einlesen und in einer Textdatei zur Weiterverarbeitung als Klartext zwischenspeichern.
Wenn das 1. Feld eines Records 32-Bit-LongInt(0) ist, ist der Record gültig. Probleme kann (wird) es mit den "alten" Strings geben, die man wegen evtl. Umlaute etc. wahrscheinlich manuell anpassen muß, weil die noch nicht Unicode-Format haben. Gruß, Andreas |
AW: Alte *.Dat-Dateien auslesen
Der Quellcode ist nicht vorhanden. Es sind auch mehrere DAT-Dateien vorhanden (ca. 30). Ich wollte nur auf die Dat-Dateien per Delphi zugreifen und die Datenauslesen und in Firebird, evtl mit Korrekturen, speichern. Ich habe es schon mit BDE - und ADO-Komponente auf diese Dateien zuzugreifen. Delphi sagt mir erst dass die Verbindung funktioniert und dann soll ich mich anmelden. Auch diese Daten habe ich nicht.
Gruß, Luckner |
AW: Alte *.Dat-Dateien auslesen
Was siehst du denn, wenn du so eine Datei mit einem (Hex)editor öffnest? Nicht unbedingt mit dem Windows internen, aber vielleicht mit Notepad+.
|
AW: Alte *.Dat-Dateien auslesen
Eigentlich nur so etwas:
Zitat:
|
AW: Alte *.Dat-Dateien auslesen
Oh oh. Nimm doch bitte Namen und Anschriften hier raus. Auch wenn es alte Daten sind. DSGVO lässt schön grüßen.
|
AW: Alte *.Dat-Dateien auslesen
Ich habe solche Dateien vor etwa 20 Jahren mal auseinander genommen.
Schwierig wird es bei varianten Records (hatte ja schon jemand geschrieben). Außerdem muss berücksichtigt werden, ob die Records "packed" definiert wurden. Ansonsten: - Sttrings sind ShortStrings. Daher steht im Byte davor die Länge. - Integer müssten jetzt ShortInt sein - Bei Real weiß ich im Moment nicht, was bei neuerem Delphi genutzt werden muss Real und Integer stehen natürlich nicht als Klartext in der Datei. Bei großen Records ist das ziemlich viel Gefummel und kann bei 30 Dateien eine Menge Arbeit bedeuten. |
AW: Alte *.Dat-Dateien auslesen
Ich danke Euch für die Hinweise. Dann müssen die Anwender dann ihre Daten per Mausklick kopieren. dann geht es eben nicht anders.
Gruß, Luckner |
AW: Alte *.Dat-Dateien auslesen
Na ja, man könnte schnell ein Tool programmieren, was ihnen die Arbeit erleichtert. Etwas mühsam ist nur den Feldtyp und die Feldlänge rauszufinden. Da wird man um Probieren nicht herum kommen. Aber wenn man das hat, kann man die Daten, zum leichten Kopieren, etwas aufbereiten in einem Memo schreiben oder jeden Datensatz in eine Textdatei speichern. Das wird nicht 100% funktionieren, wäre aber bestimmt eine Erleichterung.
|
AW: Alte *.Dat-Dateien auslesen
Lieber nicht. Das würde die Anwender an dieser Stelle überfordern. Dann müssen die Leute einige Monate parallel mit dem neuen Programm arbeiten.
Danke, Luckner |
AW: Alte *.Dat-Dateien auslesen
Zitat:
Delphi-Quellcode:
Und damit liest Du einen Datensatz ein und versuchst aus dem Feld "Reserve" bekannt erscheinende Teile abzutrennen.
TYPE
RecType1 = RECORD Dele : LongInt; AutoRelation1: LongInt; // = Link zu einer anderen .DAT Reserve : Array[1..Len-8] OF Byte; END; Damals war Real 6 Bytes lang. Aber es gab auch schon Extended mit 10 Bytes Länge. Die Integer waren 16-Bit-Integer. Es ist sicherlich eine Fummelarbeit, aber man könnte es probieren. Am einfachsten wäre es, mit einer "Stammdatenbank" zu beginnen, die von sich aus keine Verknüpfungen zu anderen *.DAT’s hat. Nomenklatur: Stammdatenbank = Kind = Detail Eine Stammdatenbank hat kein Feld "AutoRelation". Gruß, Andreas PS: Aufgrund Deines Speicherauszugs scheint mir die Recordlänge obiger .DAT 215 Bytes zu sein... |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:39 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