AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Algorithmen, Datenstrukturen und Klassendesign Delphi Nicht eindeutige Dateinamen zueinander zuordnen
Thema durchsuchen
Ansicht
Themen-Optionen

Nicht eindeutige Dateinamen zueinander zuordnen

Ein Thema von Rülps · begonnen am 26. Aug 2015 · letzter Beitrag vom 31. Aug 2015
Antwort Antwort
Seite 2 von 3     12 3      
Perlsau
(Gast)

n/a Beiträge
 
#11

AW: Nicht eindeutige Dateinamen zueinander zuordnen

  Alt 26. Aug 2015, 21:55
Ist doch alles ganz einfach: Wenn die Einträge in der DB nach Datum sortiert sind, hast du doch schon alle beisammen. Die ersten drei gehören zusammen, die nächsten drei gehören zusammen usw. Und das Datum aus dem Filenamen zu ermitteln, dürfte wohl die leichteste Übung sein ...
  Mit Zitat antworten Zitat
Dejan Vu
(Gast)

n/a Beiträge
 
#12

AW: Nicht eindeutige Dateinamen zueinander zuordnen

  Alt 27. Aug 2015, 08:19
Theoretisch richtig. Aber wenn eine Datei der Dreiergruppe fehlt oder ausnahmsweise eine zusätzliche Datei hinzukommt, passt das nicht mehr.

Ich würde auch die einzelnen 'SC-Status' Dateien nehmen und jeweils die beiden ältesten Dateien dazu packen. Als Kriterium würde ich noch sicherstellen, das sich die Zeitstempel nur um 1-2 Sekunden unterscheiden. Aber die Lösung wurde ja schon skizziert.
  Mit Zitat antworten Zitat
jobo

Registriert seit: 29. Nov 2010
3.072 Beiträge
 
Delphi 2010 Enterprise
 
#13

AW: Nicht eindeutige Dateinamen zueinander zuordnen

  Alt 27. Aug 2015, 11:14
Jede Lösung, die sich an der Existenz und Zeit einer der 3 Dateien und oder der Reihenfolge orientiert, geht mglw in die Hose.
Also auch eine Lösung, die die Dateien nach Eingang, also sequentiell analysiert und wegschreibt/weiterverarbeitet.

Da es eh in eine DB / Tabelle kommt, würde ich wie bereits vorgeschlagen dort ansetzen. Dazu wird dann das technische Intervall mit einem Sicherheitszuschlag verwendet und die Zusammengehörigkeit der Dateien anhand dessen bestimmt und in einem extra Feld per gemeinsamer ID markiert (Dateigruppe).
Im Zweifel können dabei auch 2er, 1er oder Ner Gruppen entstehen, die entweder korrekt sind, weil eine Datei fehlt oder aber falsch, weil grad Schaltsekunde, Sommerzeitumstellung oder was weiß ich war.

Alle Daten, besonders die mit mehr oder weniger als 3 Dateien können /sollten geprüft und ggF. korrigiert werden, was ja mit der Zuordnungsspalte möglich ist.
Gruß, Jo
  Mit Zitat antworten Zitat
Benutzerbild von Mavarik
Mavarik

Registriert seit: 9. Feb 2006
Ort: Stolberg (Rhld)
4.143 Beiträge
 
Delphi 10.3 Rio
 
#14

AW: Nicht eindeutige Dateinamen zueinander zuordnen

  Alt 27. Aug 2015, 13:51
Wie ist den das kleinste Interval für die Erstellung?
Abstände zwischen Events sind aus technischen Gründen immer mindestens 30 Sekunden voneinander entfernt.
Und sieh da schon hast Du Dir die Antwort selber gegeben... Ich gehe mal davon aus, dass Du die Datei nicht selber erzeugst...

Ansonsten...

if Datei gefunden... then
Finde 2 Dateien die maximal +/- 29 Sekunden vor oder nach dieser Datei erzeugt wurden...

Fertig... Ohne Viel bla bla...
  Mit Zitat antworten Zitat
Rülps

Registriert seit: 26. Sep 2008
38 Beiträge
 
#15

AW: Nicht eindeutige Dateinamen zueinander zuordnen

  Alt 27. Aug 2015, 16:29
Wie ist den das kleinste Interval für die Erstellung?
Abstände zwischen Events sind aus technischen Gründen immer mindestens 30 Sekunden voneinander entfernt.
Und sieh da schon hast Du Dir die Antwort selber gegeben... Ich gehe mal davon aus, dass Du die Datei nicht selber erzeugst...

Ansonsten...

if Datei gefunden... then
Finde 2 Dateien die maximal +/- 29 Sekunden vor oder nach dieser Datei erzeugt wurden...

Fertig... Ohne Viel bla bla...
Was mir an dieser Methode etwas stinkt ist, dass theoretisch eine Datei beispielsweise am 23.12.2014 um 23:59:59 erstellt werden könnte und die anderen beiden eine Sekunde später, d.h. ich muss um wirklich sicherzugehen sogar den Kalender des entsprechenden Jahres mitberücksichtigen, um Schaltjahre auszuschließen, um den richtigen Dateinamen zu identifizieren. Mir graust's vor der Bastelei...
Hmm, um das jetzt innerhalb der Datenbank zu lösen muss ich eine Menge umschreiben, aber ich schau mal, ob das eine befriedigende Lösung gibt.
*Doppel-Rülps*
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.768 Beiträge
 
Delphi 10.4 Sydney
 
#16

AW: Nicht eindeutige Dateinamen zueinander zuordnen

  Alt 27. Aug 2015, 16:43
.. da Du die Datensätze täglich bekommst/abholst sollte das mit dem Schaltjahr, Monatsende etc.
nicht eine so große Rolle spielen.

Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
nahpets
(Gast)

n/a Beiträge
 
#17

AW: Nicht eindeutige Dateinamen zueinander zuordnen

  Alt 27. Aug 2015, 16:57
Also bei dem ca. 30 Sekundenintervall sehe ich in der Umwandlung der Datums- und Zeitangaben aus dem Dateinamen in einen TDateTime die sicherste Möglichkeit der Zuordnung von drei Dateien.

Schaltjahr... ist dann egal, es müssen immer in einem Zeitintervall von ca. 2 Sekunden drei Dateien zu finden sein (die über den Dateinamen bzw. die Dateiendung noch eindeutig klassifiziert werden können), ansonsten stimmt (ausgehend von Deinen Vorgaben) irgendetwas nicht.

Du könntest Datum und Uhrzeit auch in die Form YYYYMMDDHHMMSS bringen, dann kannst Du auch über Zeichenfolgen sortieren und bekommst die zusammengehörenden Dateien hintereinander, Plausibilität wie oben.

Ausgehend davon das 1 = 1 Tag ist, ist eine Sekunde (ca.) 1,1574074074074074074074074074074e-5
(= 1 / 24 / 60 / 60)

Drei Dateien sind also in einem Zeitfenster von 2 * 1,1574074074074074074074074074074e-5 zu suchen und zwei Dateisätze liegen ca. 30 * 1,1574074074074074074074074074074e-5 auseinander.
Derartige Berechnungen gehen mit TDateTime ganz einfach, das ist nur ein bisserl Mathematik mit ein Größe-/Kleinervergleichen.

Dies erscheint mir deutlich einfacher, als irgendwie über Zeichenfolgenvergleiche in den Dateinamen zu einer Zuordnung zu kommen.
  Mit Zitat antworten Zitat
Rülps

Registriert seit: 26. Sep 2008
38 Beiträge
 
#18

AW: Nicht eindeutige Dateinamen zueinander zuordnen

  Alt 27. Aug 2015, 17:26
Also bei dem ca. 30 Sekundenintervall sehe ich in der Umwandlung der Datums- und Zeitangaben aus dem Dateinamen in einen TDateTime die sicherste Möglichkeit der Zuordnung von drei Dateien.

Schaltjahr... ist dann egal, es müssen immer in einem Zeitintervall von ca. 2 Sekunden drei Dateien zu finden sein (die über den Dateinamen bzw. die Dateiendung noch eindeutig klassifiziert werden können), ansonsten stimmt (ausgehend von Deinen Vorgaben) irgendetwas nicht.

Du könntest Datum und Uhrzeit auch in die Form YYYYMMDDHHMMSS bringen, dann kannst Du auch über Zeichenfolgen sortieren und bekommst die zusammengehörenden Dateien hintereinander, Plausibilität wie oben.

Ausgehend davon das 1 = 1 Tag ist, ist eine Sekunde (ca.) 1,1574074074074074074074074074074e-5
(= 1 / 24 / 60 / 60)

Drei Dateien sind also in einem Zeitfenster von 2 * 1,1574074074074074074074074074074e-5 zu suchen und zwei Dateisätze liegen ca. 30 * 1,1574074074074074074074074074074e-5 auseinander.
Derartige Berechnungen gehen mit TDateTime ganz einfach, das ist nur ein bisserl Mathematik mit ein Größe-/Kleinervergleichen.

Dies erscheint mir deutlich einfacher, als irgendwie über Zeichenfolgenvergleiche in den Dateinamen zu einer Zuordnung zu kommen.
Thx nahpets, an TDateTime hatte ich gar nicht gedacht Ich hab' die Datums- und Zeitstempel immer als String mitgeführt und ging davon aus, dass ich alles selber programmieren muss. Ja, ich denke so werde ich vorgehen!
*Doppel-Rülps*
  Mit Zitat antworten Zitat
Benutzerbild von Mavarik
Mavarik

Registriert seit: 9. Feb 2006
Ort: Stolberg (Rhld)
4.143 Beiträge
 
Delphi 10.3 Rio
 
#19

AW: Nicht eindeutige Dateinamen zueinander zuordnen

  Alt 27. Aug 2015, 20:52
Ausgehend davon das 1 = 1 Tag ist, ist eine Sekunde (ca.) 1,1574074074074074074074074074074e-5
(= 1 / 24 / 60 / 60)

Drei Dateien sind also in einem Zeitfenster von 2 * 1,1574074074074074074074074074074e-5 zu suchen und zwei Dateisätze liegen ca. 30 * 1,1574074074074074074074074074074e-5 auseinander.
Derartige Berechnungen gehen mit TDateTime ganz einfach, das ist nur ein bisserl Mathematik mit ein Größe-/Kleinervergleichen.
Ernsthaft?

Wie wäre es mit SecondsBetween(A,B) < 30
  Mit Zitat antworten Zitat
Dejan Vu
(Gast)

n/a Beiträge
 
#20

AW: Nicht eindeutige Dateinamen zueinander zuordnen

  Alt 27. Aug 2015, 22:08
Jede Lösung, die sich an der Existenz und Zeit einer der 3 Dateien und oder der Reihenfolge orientiert, geht mglw in die Hose.
Wieso? Wenn die Sequenz der Erstellung A,B,C ist und ich nach C suche, und dann alles, was vor C kommt, mitnehme (Zeitdifferenz < Epsilon und 'A,B' <> C) ... was soll daran in die Hose gehen? Logisch: Ohne 'C' geht nix. Aber sonst?

PS: Da die Erzeugung der Dateien nicht eindeutig ist, kann eine nachträgliche Zuordnung per se nicht eindeutig sein. Ich gehe davon aus, das Du genau das meinst...
  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:40 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