AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Dateivergleich über Netzwerk

Ein Thema von Marco Steinebach · begonnen am 27. Jun 2014 · letzter Beitrag vom 28. Jun 2014
Antwort Antwort
Seite 2 von 2     12   
Benutzerbild von Sir Rufo
Sir Rufo

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

AW: Dateivergleich über Netzwerk

  Alt 27. Jun 2014, 21:05
Was passiert denn wenn ein Client Daten ändert?
Wie kommen diese Änderungen an den Server und in welcher Form (nur die Änderung oder die gesamte Datei)?
Sollen die überhaupt an den Server gehen?
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)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.079 Beiträge
 
Delphi 12 Athens
 
#12

AW: Dateivergleich über Netzwerk

  Alt 27. Jun 2014, 22:39
Wenn nur deine Anwendungen die Originaldatei ändern, und eine Änderung immer über das Datum erkennbar ist, dann reicht das doch (das Prüfen über das Datum).
Da nicht verraten wurde, über welches Protokoll die Dateien abgerufen werden, war/ist halt nicht klar, ob und wenn ja wie zuverlässig das Datum ist und ob man das für den Vergleich verwenden kann.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
Dejan Vu
(Gast)

n/a Beiträge
 
#13

AW: Dateivergleich über Netzwerk

  Alt 28. Jun 2014, 09:45
Unabhängig davon, das Du als Programmierer die genaue Bedeutung einer Implikation (Wenn/dann, oder 'IF...THEN') kennen solltest, schlägt er das doch selbst vor:
Ich dachte, ich könnte einfach (im Pseudocode) sagen:
wenn das FileDate von Quelle und Ziel unterschiedlich ist, kopieren, sonst kannstde die lokale kopie nehmen.
...
Und eine Wortwahl wie 'FileDate' impliziert auch ein wenig, das Dateioperationen verwendet werden, und kein Wasauchimmer-Protokoll. Weiterhin bezweifle ich tiefer gehende Kenntnisse eines wie auch immer gearteten Protokolls, alleine durch die Art der Frage.
Also bleibt keine andere Möglichkeit als die Originaldatei zu lesen, Dann kannst Du auch gleich kopieren.
Nun ja. Bei jeder Änderung der Netz-Datei wird einmalig der Hashwert gebildet und in einer separaten Datei abgelegt. Um das noch zu optimieren könnte die verändernde Datei die Änderungen an ihrer lokalen Kopie vornehmen, dort die Hashdatei neu setzen, und dann beides ins Netz kopieren.
  Mit Zitat antworten Zitat
Klaus01

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

AW: Dateivergleich über Netzwerk

  Alt 28. Jun 2014, 10:35
.. wenn nur die Hashwerte verglichen werden, weiß man nicht ob die Datei
neuer oder älter ist als die lokale Kopie.

Grüße
Klaus
Klaus
  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
 
#15

AW: Dateivergleich über Netzwerk

  Alt 28. Jun 2014, 11:08
.. wenn nur die Hashwerte verglichen werden, weiß man nicht ob die Datei
neuer oder älter ist als die lokale Kopie.

Grüße
Klaus
Ist das nicht egal, wenn die Datenhoheit beim Server liegt?

Darum ja auch meine Fragen (weiter oben). Wie sieht denn die Datenkommunikation zurück aus, bzw. wo ist das ändernde Moment der Datei auf dem Server?
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)
  Mit Zitat antworten Zitat
Marco Steinebach

Registriert seit: 4. Aug 2006
502 Beiträge
 
Delphi 5 Enterprise
 
#16

AW: Dateivergleich über Netzwerk

  Alt 28. Jun 2014, 15:56
Hallo zusammen,
stimmt, , tiefergehende Kenntnisse über TCP u.ä. hab ich keine, mir ist zwar klar, wie ich eine Datei auf bzw. von einem Server kriege, das war's aber dann auch schon.
aber, in diesem Fall, ist's einfacher:
gute, alte Dateioperationen, wobei lediglich die Datei auf einem freigegebenen Netzwerklaufwerk liegt.
Wenn also ein Client Daten ändert heißt es schlicht:
Delphi-Quellcode:
{$i-
repeat
  reset (datei);
until ioresult <> 0;
{$i+}

// Datensatz suchen und neuen Inhalt ablegen
CloseFile (datei);
was verhindert, das zwei Leute gleichzeitig an der Datei rumschrauben.
Ich weiß, ich weiß, RICHTIGE Client-Server-Programme sehen definitiv anders aus, aber für diesen Anwendungsfall reichts, denn es ist kaum davon auszugehen, daß zwei Leute exakt den gleichen Record bearbeiten - und wenn doch: wer zuletzt kommt, malt zuletzt.

Ich habe jetzt einfach alle drei verfügbaren Datumswerte
Creation
LastAccess und
LastWrite
beim Kopieren mitübergeben, also die Kopie hat exakt denselben Zeitstempel wie die Server-Version, und, bis jetzt, tut das Programm, was es soll, wenn ich auf Datumsgleichheit für LastWrite bei Quelle und Ziel prüfe.

Kurze Frage noch - und ich dachte immer, ich könnte Batch-Dateien schreiben :
Mit was bekommt man denn in einer Batch raus, welche von zwei Dateien neuer ist?

Herzliche Grüße und nochmal vielen Dank!
Marco
Marco Steinebach
  Mit Zitat antworten Zitat
Benutzerbild von Dalai
Dalai

Registriert seit: 9. Apr 2006
1.682 Beiträge
 
Delphi 5 Professional
 
#17

AW: Dateivergleich über Netzwerk

  Alt 28. Jun 2014, 16:16
Kurze Frage noch - und ich dachte immer, ich könnte Batch-Dateien schreiben :
Mit was bekommt man denn in einer Batch raus, welche von zwei Dateien neuer ist?
Rausbekommen tut man's nicht, sondern man kopiert einfach
Code:
xcopy /D
Code:
/D:M-T-J Kopiert nur die an oder nach dem Datum geänderten Dateien.
          Ist kein Datum angegeben, werden nur Dateien kopiert,
          die neuer als die bestehenden Zieldateien sind.
MfG Dalai
  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 23:14 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