AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Alte *.Dat-Dateien auslesen
Thema durchsuchen
Ansicht
Themen-Optionen

Alte *.Dat-Dateien auslesen

Ein Thema von Luckner · begonnen am 15. Jan 2020 · letzter Beitrag vom 16. Jan 2020
Antwort Antwort
Seite 2 von 3     12 3      
Andreas13

Registriert seit: 14. Okt 2006
Ort: Nürnberg
719 Beiträge
 
Delphi XE5 Professional
 
#11

AW: Daten.dat daten.dia daten.ix

  Alt 16. Jan 2020, 09:44
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
Grüße, Andreas
Wenn man seinem Nächsten einen steilen Berg hinaufhilft, kommt man selbst dem Gipfel näher. (John C. Cornelius)
  Mit Zitat antworten Zitat
Luckner

Registriert seit: 28. Nov 2006
Ort: Berlin
418 Beiträge
 
Delphi 7 Enterprise
 
#12

AW: Alte *.Dat-Dateien auslesen

  Alt 16. Jan 2020, 11:49
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
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#13

AW: Alte *.Dat-Dateien auslesen

  Alt 16. Jan 2020, 12:01
Was siehst du denn, wenn du so eine Datei mit einem (Hex)editor öffnest? Nicht unbedingt mit dem Windows internen, aber vielleicht mit Notepad+.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Luckner

Registriert seit: 28. Nov 2006
Ort: Berlin
418 Beiträge
 
Delphi 7 Enterprise
 
#14

AW: Alte *.Dat-Dateien auslesen

  Alt 16. Jan 2020, 12:09
Eigentlich nur so etwas:
Zitat:
ÝZ  ÝZ  27482 ELISON IMMOBIELIEN GMBH Kunde     69999
l—@ lA˜@ nd ohne Beschädigungen verlassen !!! k 25358 REISSIG-MARION     AD: Hr. Münchow Handwerker Rechnung lt. VOB§16 sofort o. Abzug zahlbar 69999 
ïmÛ4 nÛ4 sen !!! ¢ 10002 SIEWOGE Kunde     veränderter Stundenlohn 69999  HV +E$ ýt,< nd ohne Beschädigungen verlassen !!! t 10003 BERLINOVO Kunde     ACHTUNG immer schrift. Angebot für Rep + Neu und Auftragswert beachten, sonst gibt es Ärger mit der HV - Info 30.06.2016, HM Hr. Metting hat keine Befugnisse ! Lt. Fr. Kremser Zahlbar innerhalb 4 Wochen 69999  HV96/12 ROM, +E$ aFI ú  r schrift. Angebot für Rep + Neu und Auftragswert beachten, sonst gibt es Ärger mit der HV - Info 30.06.2016, HM Hr. Metting hat keine Befugnisse ! Lt. Fr. Kremser Zahlbar innerhalb 4 Wochen 69999  HV96/12 ROM, +E$ aFI 7 10004 GEWIWO Kunde     andere Preise, 1997: 59,25 DM/Std.#zAD: Hr. Münchow Zahlbar innerhalb 4 Wochen 69999  HV96/00/03/04/05/09 ROM,JA +E$ xV,< ab 1.03.98 - DM 61,00 -Demontge DM 29,00 bis 3,00 m Breite ú 10005 FREIE-SCHOLLE Kunde     Baurose, Mieter: Noebel, Moränenweg 24, Tegel - Feske, Allmendeweg. 116, Berlin Tegel, Hensen, Erholungsweg 48 Dämmung erhalten, Schaum mitnehmen! Zahlbar innerhalb 4 Wochen 69999  FA96/10/11 ROM/WD +E$ srRC ab 01.03.98 DM 61,00#zDemontage bis 3,0 m Breite-DM 29,00 ú  Feske, Allmendeweg. 116, Berlin Tegel, Hensen, Erholungsweg 48 Dämmung erhalten, Schaum mitnehmen! Zahlbar innerhalb 4 Wochen 69999  FA96/10/11 ROM/WD +E$ srRC ab 01.03.98 DM 61,00#zDemontage bis 3,0 m Breite-DM 29,00 ^ 10011 GESOBAU Kunde     Mahl 69999  HV94/95/96/11 ROM/JA/FEM +E$ mh«F Neitzke: TechnischerEinkauf, Frau Hentschel: Geld, Rahmenauftrag, Frau Reimann: Gebäudeinstandhalt Ú 28397 RTW GMBH     Münchow 69999
hb°> ¡b°> nd ohne Beschädigungen verlassen !!! ^ 11929 FLORIAN-ANDREAS     AD: Hr. Pöachel Handwerker Rechnung lt. VOB§16 sofort o. Abzug zahlbar 69999 
PR04 Insektenschutz Ôf*0 ]E×0 nd ohne Beschädigungen verlassen !!! µ 21808 LORENZ-RUDI     69999
PR 01 MU º@A* niŸ+ sen !!! a 18497 BADINIJKI-OLIVER     69999
3a[% jiŸ+ sen !!! _ 18359 EBMEYER-DAGMAR     69999
"U/% jiŸ+ sen !!! ] 31482 DERCOUST Kunde     M. Striewe 69999
.ƒ+J iƒ+J nd ohne Beschädigungen verlassen !!! f 28341 OTTO-GERT     Münchow 69999
ã[…> \…> nd ohne Beschädigungen verlassen !!! _ 28340 TERASA-HEINZ Kunde     AD: Herr Münchow 69999
FA 11 AAJA †„> 1d;D nd ohne Beschädigungen verlassen !!! z 27719 KROHN     69999
HV ,V,< <`,< nd ohne Beschädigungen verlassen !!! V 26694 BARTOSZEWSKI-NORBERT Kunde     AD: Herr Pöschel/ Baurose 69999
PR 08/09 JA T{ƒ8 $vÞ> sen !!! ‹ 26546 LANGER-HELGA     AD: Hr. Pöschel 69999
  Mit Zitat antworten Zitat
Benutzerbild von Codehunter
Codehunter

Registriert seit: 3. Jun 2003
Ort: Thüringen
2.272 Beiträge
 
Delphi 10.4 Sydney
 
#15

AW: Alte *.Dat-Dateien auslesen

  Alt 16. Jan 2020, 12:17
Oh oh. Nimm doch bitte Namen und Anschriften hier raus. Auch wenn es alte Daten sind. DSGVO lässt schön grüßen.
Ich mache grundsätzlich keine Screenshots. Schießen auf Bildschirme gibt nämlich hässliche Pixelfehler und schadet der Gesundheit vom Kollegen gegenüber. I und E zu vertauschen hätte den selben negativen Effekt, würde aber eher dem Betriebsklima schaden
  Mit Zitat antworten Zitat
Benutzerbild von Jasocul
Jasocul

Registriert seit: 22. Sep 2004
Ort: Delmenhorst
1.354 Beiträge
 
Delphi 11 Alexandria
 
#16

AW: Alte *.Dat-Dateien auslesen

  Alt 16. Jan 2020, 12:30
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.
Peter
  Mit Zitat antworten Zitat
Luckner

Registriert seit: 28. Nov 2006
Ort: Berlin
418 Beiträge
 
Delphi 7 Enterprise
 
#17

AW: Alte *.Dat-Dateien auslesen

  Alt 16. Jan 2020, 12:45
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
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#18

AW: Alte *.Dat-Dateien auslesen

  Alt 16. Jan 2020, 13:15
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.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Luckner

Registriert seit: 28. Nov 2006
Ort: Berlin
418 Beiträge
 
Delphi 7 Enterprise
 
#19

AW: Alte *.Dat-Dateien auslesen

  Alt 16. Jan 2020, 13:30
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
  Mit Zitat antworten Zitat
Andreas13

Registriert seit: 14. Okt 2006
Ort: Nürnberg
719 Beiträge
 
Delphi XE5 Professional
 
#20

AW: Alte *.Dat-Dateien auslesen

  Alt 16. Jan 2020, 14:38
...Das würde die Anwender an dieser Stelle überfordern. Dann müssen die Leute einige Monate parallel mit dem neuen Programm arbeiten.
Das heißt, daß ein funktionierendes Programm vorhanden ist. In dieser ISAM-Datenbank war es damals (1990+) üblich, einen Menüpunkt zur Anzeige der Datenbankgröße & Statistik zu haben. Dort könntest Du die Datensatzlänge Len in Bytes und die Anzahl der Datensätze anzeigen lassen. Damit hättest Du bereits etwas Information über die Datensatzstruktur
Delphi-Quellcode:
TYPE
  RecType1 = RECORD
    Dele : LongInt;
    AutoRelation1: LongInt; // = Link zu einer anderen .DAT
    Reserve : Array[1..Len-8] OF Byte;
  END;
Und damit liest Du einen Datensatz ein und versuchst aus dem Feld "Reserve" bekannt erscheinende Teile abzutrennen.

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...
Grüße, Andreas
Wenn man seinem Nächsten einen steilen Berg hinaufhilft, kommt man selbst dem Gipfel näher. (John C. Cornelius)

Geändert von Andreas13 (16. Jan 2020 um 14:46 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


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 08:47 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz