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
nahpets
(Gast)

n/a Beiträge
 
#1

AW: Nicht eindeutige Dateinamen zueinander zuordnen

  Alt 28. Aug 2015, 13:56
Das SecondsBetween müsste hier also between ca. 25 and 35 Seconds liegen.
natürlich nicht...

SecondsBetween wird sicherlich bei 1-3 liegen...

Es geht ja nur darum die Datei zu finden die zum gleichen Zeitpunkt erstellt worden ist... mit der 1-3 Sekunden Verzögerung. Da das Intervall der Erzeugung bei 30 Sekunden liegt, bis wieder 3 Dateien kommen war <30 GENAU richtig!
Zitat von Rülps:
Abstände zwischen Events sind aus technischen Gründen immer mindestens 30 Sekunden voneinander entfernt.
von daher kann < 30 richtig sein, muss es aber nicht.

< 30 kann richtig sein, wenn es um die Zeitdifferenz von drei zueinander gehörenden Dateien geht. Es ist aber falsch, wenn es um den Zeitabstand von jeweils zwei Dateitripeln geht, hier müsste es dann >= 30 heißen.

Ob 30 Sekunden richtig oder falsch sind, kommt auf den Standpunkt an.

Daraus resultierte mein Vorschlag, nur die jeweils zuletzt erstellte Datei (anhand des Dateinamenmusters) zu suchen und die zugehörigen Dateien zuerst zum gleichen Zeitpunkt zu erwarten und wenn nicht gefunden nochmal mit einer Zeitdifferenz von einer, bei weiterem Misserfolg einer weiteren, Sekunde zu suchen.

Dateizeit sei also 10_00_03.
Erste Versuch mit 10_00_03.
zweiter Versuch mit 10_00_02
dritter Versuch mit 10_00_01
und schon haben wir
Zitat von Mavarik:
SecondsBetween wird sicherlich bei 1-3 liegen...
für das Dateitripel.

Die Zeit zwischen zwei Dateitripeln sollte (s. o.) größer oder gleich 30 sein.
Da ich halt nicht so recht weiß, wie genau die Zeitvergabe bei den einzelnen Dateien ist, hatte ich als "Toleranzgrenze" halt mal als Beispiel 5 Sekunden angenommen.

Frei nach dem Motto: Wenn zwei Dateitripel mehr oder weniger als 25 bis 35 Sekunden auseinander liegen, dann stimmt höchstwahrscheinlich etwas nicht. Für genaue Angaben muss man das System halt besser kennen oder weitere Informationen bekommen. Aber vermutlich ist das Problem längst gelöst und eine Diskussion über SecondsBetween 1..3 oder SecondsBetween 25..35, jenachdem welches Problem man nun löst (Konsitenz innerhalb eines Dateitripels oder zwischen zwei Dateitripeln), nicht weiter von Belang.
  Mit Zitat antworten Zitat
HolgerX

Registriert seit: 10. Apr 2006
Ort: Leverkusen
989 Beiträge
 
Delphi 6 Professional
 
#2

AW: Nicht eindeutige Dateinamen zueinander zuordnen

  Alt 28. Aug 2015, 17:32
Hallo..

Wenn ich das richtig gelesen habe, dann kommt ein Datenträger mit diversen dieser Event-Dateien.

Dann würde ich anders vorgehen..

Einlesen aller Dateinamen in eine Liste.
Dekodieren der Zeitanteile zu TDateTime.

Prüfen, welche Dateien innerhalb, sagen wir mal 5 Sekunden, beisammen sind, ausgehend von einer der Dateien, z.B. die .csv und dann diese 3 Dateien zusammen einlesen/verarbeiten.

Mit FileExists würde man im ungünstigsten Fall 4-5 Versuche je Paket machen, und jedes Mal somit auf dem Datenträger hantieren und jedes mal die Dateinamen formatieren.

Wenn so alles im Speicher stattfindet, ist dies einfach nur zunächst ein sortieren der Liste nach Zeitpunkt und dann die nächsten 2 Dateien prüfen.

Sollte am schnellsten gehen...
  Mit Zitat antworten Zitat
nahpets
(Gast)

n/a Beiträge
 
#3

AW: Nicht eindeutige Dateinamen zueinander zuordnen

  Alt 28. Aug 2015, 18:02
Hallo..

Wenn ich das richtig gelesen habe, dann kommt ein Datenträger mit diversen dieser Event-Dateien.

Dann würde ich anders vorgehen..

Einlesen aller Dateinamen in eine Liste.
Dekodieren der Zeitanteile zu TDateTime.

Prüfen, welche Dateien innerhalb, sagen wir mal 5 Sekunden, beisammen sind, ausgehend von einer der Dateien, z.B. die .csv und dann diese 3 Dateien zusammen einlesen/verarbeiten.

Mit FileExists würde man im ungünstigsten Fall 4-5 Versuche je Paket machen, und jedes Mal somit auf dem Datenträger hantieren und jedes mal die Dateinamen formatieren.

Wenn so alles im Speicher stattfindet, ist dies einfach nur zunächst ein sortieren der Liste nach Zeitpunkt und dann die nächsten 2 Dateien prüfen.

Sollte am schnellsten gehen...
Deshalb hatte ich ja auch mal vorgeschlagen, den "Spass" (da ja sowieso mit 'ner Datenbank gearbeitet wird) in der Datenbank "abzufackeln".
Dateiname rein in die Tabelle, Datums-/Zeitanteil aus dem Dateinamen in eine Datums-/Zeitspalte, sortieren und schon hat man alles beieinander.

Und man hat die Informationen nicht nur zur Laufzeit im Arbeitsspeicher, sondern dauerhaft zur Verfügung.
  Mit Zitat antworten Zitat
Antwort Antwort


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 19:40 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