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 2     12   
Benutzerbild von stahli
stahli

Registriert seit: 26. Nov 2003
Ort: Halle/Saale
4.359 Beiträge
 
Delphi 11 Alexandria
 
#1

AW: Nicht eindeutige Dateinamen zueinander zuordnen

  Alt 26. Aug 2015, 17:42
Da wären ein paar mehr Infos hilfreich.

1. Nachfrage:
Erzeugst Du die Dateien selbst oder sind die von dritter Seite gegeben?
Vielleicht lässt sich der Zeitstempel ja vereinheitlichen:
TS := Now; ... und dann überall TS verwenden.
Nur mal vorab, eh man komplexere Lösungen sucht.

Zur Sortierung wäre (wenn das nicht fix ist) evtl. auch ein anderes Dateinamenformat zu überlegen: yyyymmddhhnnsszzz-irgendwas.xyz

Welche Abstände haben denn die Zeitstempel? Mindestens einige Sekunden oder auch mal sehr wenig?
Stahli
http://www.StahliSoft.de
---
"Jetzt muss ich seh´n, dass ich kein Denkfehler mach...!?" Dittsche (2004)
  Mit Zitat antworten Zitat
Benutzerbild von frankyboy1974
frankyboy1974

Registriert seit: 7. Apr 2015
Ort: SH
169 Beiträge
 
Delphi XE7 Professional
 
#2

AW: Nicht eindeutige Dateinamen zueinander zuordnen

  Alt 26. Aug 2015, 17:44
hallo,

du möchtest Daten an hand eines Zeitstempels eindeutig zuordnen, das Problem hatte ich vor Jahren auch mal...

Nein, wir suchen eine andere Lösung.

mfg
Java ist auch eine Insel.
Ist Delphi von Oracle?
In meiner Buchstabensuppen fehlt das C++!
  Mit Zitat antworten Zitat
nahpets
(Gast)

n/a Beiträge
 
#3

AW: Nicht eindeutige Dateinamen zueinander zuordnen

  Alt 26. Aug 2015, 18:11
Hallo,

mache mal 'nen blöden Vorschlag:

Da Du ja schon eine Datenbank hast, lies Dir die Dateinamen in eine eigene Tabelle ein.

Die Tabelle bekommt eine Spalte für den Dateinamen und weitere Spalten für Datum und Uhrzeit.
Code:
G1-01_05_2014 00_10_57.csv
G1-01_05_2014 00_10_57.txt
G1-SC status-01_05_2014 00_10_57.txt
Nun teilst Du Dir beim Befüllen der Tabelle den Dateinamen auf:
Delphi-Quellcode:
// Nur hingedaddelt, nicht getestet.
procedure TuEsInDieDatenbank(sDateiname : String);
Var
  sDatum : String;
  sZeit : String;
  iPos : Integer;
begin
  sDatum := ChangeFileExt(sDateiname,'');
  sDatum := AnsiReplaceText(sDatum,'SC status-','');
  iPos := Pos('-',sDatum) + 1;
  sDatum := Copy(sDatum,iPos,Length(sDatum));
  iPos := Pos(' ',sDatum);
  sZeit := Copy(sDatum,iPos + 1,Length(sDatum));
  sDatum := Copy(sDatum,1,iPos - 1);
  sDatum := AnsiReplaceText(sDatum,'_','.');
  sZeit := AnsiReplaceText(sZeit,'_',':');
  tabelle.append;
  tabelle.FieldByName('dateiname').AsString := sDateiname;
  tabelle.FieldByName('datum').AsDateTime := StrToDate(sDatum);
  tabelle.FieldByName('zeit').AsDateTime := StrToTime(sZeit);
  // Müsste eigentlich auch gehen.
  tabelle.FieldByName('Zeitstempel').AsDateTime := StrToDateTime(sDatum + ' ' + sZeit);
  tabelle.Post;
end;
Wenn Du nun den Inhalt der Datenbank per
Code:
select Dateiname from tabelle order by zeit, datum, dateinamen
liest, sollten immer die drei zusammengehörenden Sätze hintereinander liegen.
Über den Dateinamen kannst Du ja dann ausmachen, um welchen Dateityp es sich handelt, um die weitere Verarbeitung zu steuern.

Aber: Ich gehe nicht davon aus, dass das in 100% der Fälle so funktioniert.
Wenn die Dateien in kurzen Zeitabständen erstellt werden, kann es immernoch zu Problemen bei der Zuordnung kommen.
Code:
G1-01_05_2014 00_10_56.csv
G1-01_05_2014 00_10_57.txt
G1-SC status-01_05_2014 00_10_57.txt
G1-01_05_2014 00_10_57.csv
G1-01_05_2014 00_10_58.txt
G1-SC status-01_05_2014 00_10_58.txt
Was gehört jetzt zusammen?

Wie oben schon mal kommentiert:
Zitat von frankyboy1974:
Nein, wir suchen eine andere Lösung.
Wenn irgendmöglich ist diese Alternative vorzuziehen!

Geändert von nahpets (26. Aug 2015 um 18:12 Uhr) Grund: jajajaja - die lieben Schreibfehler :-(
  Mit Zitat antworten Zitat
Benutzerbild von scrat1979
scrat1979

Registriert seit: 12. Jan 2007
Ort: Sulzbach a.d. Murr
1.029 Beiträge
 
Delphi 10.4 Sydney
 
#4

AW: Nicht eindeutige Dateinamen zueinander zuordnen

  Alt 26. Aug 2015, 18:19
Vielleicht habe ich auch die Aufgabenstellung falsch verstanden, aber so weit ich es verstanden habe werden die drei zusammengehörenden Dateien in einem Event erstellt. Warum speicherst du nicht zu Beginn des Events den aktuellen Zeitstempel in einer Variable ab und verwendest diese um die Dateinamen zu erstellen? Dann wäre doch die Basis für alle drei Dateien derselbe Zeitstempel - egal ob die Dateien auch "länger" nacheinander erstellt werden.
Michael Kübler
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#5

AW: Nicht eindeutige Dateinamen zueinander zuordnen

  Alt 26. Aug 2015, 18:54
@scrat1979

(sehe gerade, stahli hat das auch schon vorgeschlagen)

Alles andere ist doch Unfug - einen wie auch immer gearteten Algorithmus zu finden, der den Fehler, den man selber verbockt hat im Nachgang wieder ausbügelt.
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)

Geändert von Sir Rufo (26. Aug 2015 um 18:58 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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 16:23 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