Datumswert wird als 10-stellige Zahl gespeichert [Erledigt]

Sonstiges (nicht kategorisierbar)

Moderator: Moderatoren

KlausL
UDF-Programmierer
UDF-Programmierer
Beiträge: 54
Registriert: Fr, 23. Okt 2009 11:38

Datumswert wird als 10-stellige Zahl gespeichert [Erledigt]

Beitrag von KlausL »

Hallo,

in einem alten DBASE-Projekt (keine Unterlagen, keine Sourcen, nur EXE-Datei und DBF-Files) sind in einer Tabelle in einer numerischen Spalte (Länge 10) Datumswerte/ Timestamps abgespeichert.

Beim entsprechenden Listendruck wird dann ein Kalenderdatum ausgegeben, z. B.

Feldinhalt '1280266089' --> beim Ausdruck offensichtlich umgewandelt in '15.02.2018'.

Hat irgend jemand von Euch eine Idee, welche Funktionen früher für so etwas in DBASE verwendet wurden bzw. was die Denke hinter sowas war ?

Für Eure Bemühungen vielen Dank im Voraus,

Klaus
Zuletzt geändert von KlausL am Mo, 09. Jul 2018 13:05, insgesamt 1-mal geändert.
Benutzeravatar
HaPe
1000 working lines a day
1000 working lines a day
Beiträge: 995
Registriert: So, 15. Nov 2015 17:44
Wohnort: 71665 Vaihingen-Enz
Hat sich bedankt: 17 Mal
Danksagung erhalten: 15 Mal

Re: Datumswert wird als 10-stellige Zahl gespeichert

Beitrag von HaPe »

Hallo Klaus !
in einem alten DBASE-Projekt (keine Unterlagen, keine Sourcen, nur EXE-Datei und DBF-Files)
Was für ein dBase: DOS/WINDOWS (ich kenne DBase bis 5.0 DOS)
Feldinhalt '1280266089' --> beim Ausdruck offensichtlich umgewandelt in '15.02.2018'.
? DATE(1900,1,1) + Tage (1280266089), ergibt bei mir aber Mist.
Integerzahlen werden oft verwendet für ein Datum.
Berechnung dann Startdatum (meist 1.1.1900 oder 1.1.1980) + Anzahl Tage (diese Zahl).
--
Hans-Peter
KlausL
UDF-Programmierer
UDF-Programmierer
Beiträge: 54
Registriert: Fr, 23. Okt 2009 11:38

Re: Datumswert wird als 10-stellige Zahl gespeichert

Beitrag von KlausL »

Hallo Hans-Peter,

ich denke, es war DBASE IV under DOS.
Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
Beiträge: 16502
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Hat sich bedankt: 111 Mal
Danksagung erhalten: 48 Mal
Kontaktdaten:

Re: Datumswert wird als 10-stellige Zahl gespeichert

Beitrag von Martin Altmann »

Nun,
ich kenne das eher mit 1.1.1970 + Anzahl_Sekunden. Um also die zehnstellige Zahl in Sekunden umzurechnen in Tage müsste man sie vor der Addition durch 86400 (60*60*24) teilen.
Anhand der Beispielwerte würde dann irgendwas mit Juli 2010 rauskommen.

Viele Grüße,
Martin
:grommit:
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/

Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
HaPe
1000 working lines a day
1000 working lines a day
Beiträge: 995
Registriert: So, 15. Nov 2015 17:44
Wohnort: 71665 Vaihingen-Enz
Hat sich bedankt: 17 Mal
Danksagung erhalten: 15 Mal

Re: Datumswert wird als 10-stellige Zahl gespeichert

Beitrag von HaPe »

Hmm, ich hatte eine DBF-Library für C.
Als Datum (DATE) wurden die Tage seit 1.1.1900 mit Nachkomma-Stellen geschrieben; als Excel noch den DBF-Filter eingebaut hatte, konnte Excel diese Zahl wieder in ein Datum/Uhrzeit wandeln :angel3:
--
Hans-Peter
Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 14641
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 21 Mal
Danksagung erhalten: 87 Mal
Kontaktdaten:

Re: Datumswert wird als 10-stellige Zahl gespeichert

Beitrag von Jan »

Schau eventuell mal hier nach. Mich hatte kürzlich ein ähnliches Problem geplagt: https://xbaseforum.de/viewtopic.php?f=32&t=10505

Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
Beiträge: 16502
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Hat sich bedankt: 111 Mal
Danksagung erhalten: 48 Mal
Kontaktdaten:

Re: Datumswert wird als 10-stellige Zahl gespeichert

Beitrag von Martin Altmann »

Yup - nur das bei dir die Zahl 13-stellig war und damit tausendstel Sekunden seit 1.1.1970 - hier haben wir nur zehn Stellen.

Viele Grüße,
Martin
:grommit:
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/

Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 14641
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 21 Mal
Danksagung erhalten: 87 Mal
Kontaktdaten:

Re: Datumswert wird als 10-stellige Zahl gespeichert

Beitrag von Jan »

Aber die letzten drei Stellen waren lt. Aussage von Wolfgang ja auch zu viel. Und damit sind wir dann wieder bei 10 Stellen.

jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15688
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: Datumswert wird als 10-stellige Zahl gespeichert

Beitrag von brandelh »

Im Quellcode der Anwendung sollte es eine Info geben wie die Zahl berechnet wird.
dbase, clipper etc. haben intern einen Datentyp DATUM und in der DBF immer schon JJJJMMTT abgespeichert (DtoS()).
Um ein anderes Datum zu bekommen muss das Programm ein dbase / Xbase Datentyp in diesen numerischen Wert umrechnen.

Ich kenne aus dem Gedächtnis auch nur entweder das heute gebräuchliche DateTimeStamp-Format (das ist es nicht),
ISO was dem internen DBF Format nahe kommt und die C oder UNIX Behandlung, wie sie Martin beschrieben hat.
Excel selbst macht es je nach Version mit anderem Startdatum ... besonders sinnvoll :badgrin:
DOS ab 1970 ...

Wenn du dir die Rechenregeln anschaust, kannst du ja versuchen von deinem Bekannten Datum auf die Nummer zu kommen,
aber einfacher wäre es das im Quellcode zu suchen 8)
Gruß
Hubert
Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 14641
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 21 Mal
Danksagung erhalten: 87 Mal
Kontaktdaten:

Re: Datumswert wird als 10-stellige Zahl gespeichert

Beitrag von Jan »

Ich hab das gerade mal getestet. Nach der oben erwähnten Diskussion hatte ich mir meine eigene Funktion zur Konvertierung geschrieben. Wenn ich die aber auf den Klaus geposteten Timestamp loslasse, kommt da bei Weitem nicht das von ihm als Ergebnis genannte Datum. Das ist es also in der Tat nicht.

Von daher kann ich Hubert nur zustimmen.

Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
KlausL
UDF-Programmierer
UDF-Programmierer
Beiträge: 54
Registriert: Fr, 23. Okt 2009 11:38

Re: Datumswert wird als 10-stellige Zahl gespeichert

Beitrag von KlausL »

Hallo,

zunächst vielen Dank für Eure Hilfe.

Ich habe das alles versucht, leider ohne Erfolg (numerischer Wert als Anzahl Sekunden seit 01.01.1970/ 31.12.1899, als Dezimalzahl wg. hundertstel Sekunden usw).

Gibt es eine Möglichkeit, eine vermutlich mit DBASE IV erzeugte EXE zu dekompilieren? Ist wahrscheinlich die einzige Möglichkeit festzustellen, wie der Programmierer seinerzeit ein Kalenderdatum als 10-stellige Zahl umgewandelt hat.

Viele Grüße,

Klaus.
Benutzeravatar
komnick
UDF-Programmierer
UDF-Programmierer
Beiträge: 75
Registriert: Mi, 04. Jun 2014 9:56
Wohnort: Berlin
Hat sich bedankt: 1 Mal
Danksagung erhalten: 5 Mal

Re: Datumswert wird als 10-stellige Zahl gespeichert

Beitrag von komnick »

Hallo Klaus,

sollte es sich bei 1280266089 um die Sekunden handeln, die seit einem Startwert vergangen sind, wäre dieser Startwert der 23.07.1977. (Hatte der Programmierer einen Grund, diesen individuellen Startwert zu wählen?)

Schreib doch noch ein paar andere Zahlen in die Datenbank und schreibe uns, welche Datumswerte dann gedruckt werden. Dann lässt sich eine Theorie wie die oben vielleicht bestätigen oder widerlegen.

Gruß
Martin
Benutzeravatar
BJelinek
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 218
Registriert: Sa, 02. Jun 2012 20:57
Wohnort: 73257 Köngen
Hat sich bedankt: 9 Mal
Danksagung erhalten: 3 Mal

Re: Datumswert wird als 10-stellige Zahl gespeichert

Beitrag von BJelinek »

Hallo Klaus,
kannst du noch mehr Zahlenparre posen

zahl --> Datum
Grüße
Bernd

Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9345
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 100 Mal
Danksagung erhalten: 359 Mal
Kontaktdaten:

Re: Datumswert wird als 10-stellige Zahl gespeichert

Beitrag von Tom »

Genau. Zwei Zahlen, Differenz bilden, und dann schauen, wie sich die Differenz zur Differenz der Daten verhält. Damit hat man dann auch gleich das Basisdatum.
Herzlich,
Tom
ramses
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2513
Registriert: Mi, 28. Jul 2010 17:16
Hat sich bedankt: 12 Mal
Danksagung erhalten: 77 Mal

Re: Datumswert wird als 10-stellige Zahl gespeichert

Beitrag von ramses »

Hi
Gibt es eine Möglichkeit, eine vermutlich mit DBASE IV erzeugte EXE zu dekompilieren?
Ja. Wenn es ein mit Clipper erstellte EXE ist. Dann kann perfekter Source-Code erzeugt werden.

Gruss Carlo
Zuletzt geändert von ramses am Do, 05. Jul 2018 19:02, insgesamt 1-mal geändert.
Valar Morghulis

Gruss Carlo
Benutzeravatar
HaPe
1000 working lines a day
1000 working lines a day
Beiträge: 995
Registriert: So, 15. Nov 2015 17:44
Wohnort: 71665 Vaihingen-Enz
Hat sich bedankt: 17 Mal
Danksagung erhalten: 15 Mal

Re: Datumswert wird als 10-stellige Zahl gespeichert

Beitrag von HaPe »

Hallo Carlo !
Gibt es eine Möglichkeit, eine vermutlich mit DBASE IV erzeugte EXE zu dekompilieren?
Ja. Wenn es ein Clipperprogramm ist.
Dir scheint entgangen zu sein, dass es ab dBase IV 2.0 möglich war eine EXE zu erstellen.
Mit dBase 5.0 von Borland waren schöne Turbovision-Oberflächen mit Menü-System und super Mausbedienung erstellbar.
--
Hans-Peter
ramses
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2513
Registriert: Mi, 28. Jul 2010 17:16
Hat sich bedankt: 12 Mal
Danksagung erhalten: 77 Mal

Re: Datumswert wird als 10-stellige Zahl gespeichert

Beitrag von ramses »

Hallo Hans-Peter

Nein, das nicht. Er schreibt "vermutlich". Ich selbst habe in den 90er Jahren mit dBase gearbeitet und zum Schluss jedoch die EXE mit Clipper erstellt.

DBase 5 habe ich nicht mehr verwendet unter Clipper war damals einiges mehr möglich.

Er müsste als erstes prüfen mit welchem Tool seine EXE gebaut worden ist.

Mit einem HEX Editor in der EXE suchen ob sich der String "Clipper" in der EXE befindet.

Gruss Carlo
Valar Morghulis

Gruss Carlo
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12903
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 44 Mal

Re: Datumswert wird als 10-stellige Zahl gespeichert

Beitrag von AUGE_OHR »

es gibt auch Decompiler für Dbase ... muss mal sehen ob ich die in der Cl*pper-BBS finde
gruss by OHR
Jimmy
KlausL
UDF-Programmierer
UDF-Programmierer
Beiträge: 54
Registriert: Fr, 23. Okt 2009 11:38

Re: Datumswert wird als 10-stellige Zahl gespeichert

Beitrag von KlausL »

Hallo,

ich habe nochmal Eure Vorschläge mit den folgenden Werten ausprobiert, funktioniert leider nicht:

1280266089 --> 15.02.18
1249202439 --> 21.03.17
1190942843 --> 28.07.15
1192773398 --> 24.08.15

Auch ein Import nach Excel bringt nichts, man kann für die numerische Spalte als Formatierung einstellen, was man will, wird nur Schrott angezeigt.

Nochmals vielen Dank für Eure Hilfe,

viele Grüße

Klaus
Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
Beiträge: 16502
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Hat sich bedankt: 111 Mal
Danksagung erhalten: 48 Mal
Kontaktdaten:

Re: Datumswert wird als 10-stellige Zahl gespeichert

Beitrag von Martin Altmann »

Wenn du jetzt noch den 14.02.2018 und den 16.02.2018 ermittelst, kommen wir vielleicht weiter!

Viele Grüße,
Martin
:grommit:
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/

Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15688
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: Datumswert wird als 10-stellige Zahl gespeichert

Beitrag von brandelh »

Bist du sicher, dass dieses Feld das Datum abspeichert ?
Es könnte auch eine eindeutige Zahl sein, die mit Hilfe des Datums generiert wird und das Datum selbst ist in einem anderen Feld ...
Gruß
Hubert
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15688
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: Datumswert wird als 10-stellige Zahl gespeichert

Beitrag von brandelh »

Ich frage deshalb, weil mir das alles doch recht seltsam vorkommt. Warum sollte jemand der ein Datumsfeld nutzen kann, sich diese Arbeit machen und den Wert irgendwie seltsam codieren ?
Gruß
Hubert
Benutzeravatar
HaPe
1000 working lines a day
1000 working lines a day
Beiträge: 995
Registriert: So, 15. Nov 2015 17:44
Wohnort: 71665 Vaihingen-Enz
Hat sich bedankt: 17 Mal
Danksagung erhalten: 15 Mal

Re: Datumswert wird als 10-stellige Zahl gespeichert

Beitrag von HaPe »

Hallo Klaus !

Code: Alles auswählen

1280266089 --> 15.02.18
1249202439 --> 21.03.17
1190942843 --> 28.07.15
1192773398 --> 24.08.15
Da kann was nicht stimmen. [-X
Wenn man die Zahlen-Differenzen und die Datums-Differenzen ins Verhältnis setzt kommt jedes mal ein anderes Verhältnis raus. Das sollte aber immer gleich sein.

Ich glaube eher was Hubert vermutet :?
--
Hans-Peter
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9345
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 100 Mal
Danksagung erhalten: 359 Mal
Kontaktdaten:

Re: Datumswert wird als 10-stellige Zahl gespeichert

Beitrag von Tom »

Bezogen auf die Tage kommt immer was in den Neunzigtausendern heraus, wenn man die Zahlen ins Verhältnis setzt, außer zwischen dem Zahlenpaar 2 und 3. Kann es sein, dass da beim Abtippen was passiert ist? Außerdem sind die Differenzen tatsächlich nur relativ ähnlich, aber nicht gleich. Das müssten sie aber sein, wenn sie sich auf einen echten Kalender beziehen. Es wäre aber auch möglich, dass sie sich auf abstrakte, idealisierte Monate beziehen (je Monat 31 Tage, ein Jahr mit 372 Tagen), um nicht mit Schaltjahren usw. herumeiern zu müssen. Das habe ich nicht durchgerechnet.

Sehr eigenartig.
Herzlich,
Tom
Benutzeravatar
komnick
UDF-Programmierer
UDF-Programmierer
Beiträge: 75
Registriert: Mi, 04. Jun 2014 9:56
Wohnort: Berlin
Hat sich bedankt: 1 Mal
Danksagung erhalten: 5 Mal

Re: Datumswert wird als 10-stellige Zahl gespeichert

Beitrag von komnick »

Hallo Klaus,

vielleicht ist die Beziehung zwischen 1280266089 und 15.02.18 nur so eine wie zwischen Buchungsnummer und Buchungsdatum: Obwohl beide mit der Zeit steigen, gibt es doch keine Formel, um das eine in das andere umzuwandeln. Das Programm könnte in einer anderen Datenbank das Datum zur Nummer suchen.

Möglicherweise hilft die Beantwortung dieser Fragen weiter:
  • Wie heißt denn das Datenbankfeld, das 1280266089 enthält?
  • Was für eine Art von Datum ist es? (Buchungsdatum, Auftragsdatum, Bearbeitungsdatum?)
  • Gibt es in der Datei auch "echte" Datumsfelder (also vom Typ Datum)?
  • Gibt es in der Datei mehr als ein Pseudo-Datumsfeld (vom Typ numerisch)? Falls ja: Wenn in zwei verschiedenen Pseudo-Datumsfeldern dieselbe Zahl steht, ergibt dies dasselbe Datum?
  • Wie lautet denn die kleinste Zahl, die im Pseudo-Datumsfeld vorkommt?
  • Nenne mal ein Paar aus Datum und Zahl, bei dem das Datum vor dem 01.01.2000 liegt.
Gruß
Martin
Antworten