Einzelnen Beitrag anzeigen

Zerolith

Registriert seit: 12. Mär 2003
Ort: Kempten
188 Beiträge
 
Delphi 6 Enterprise
 
#7

Re: Datei in Echtzeit "teilen"

  Alt 21. Jun 2009, 21:04
Hallo 64Jabor,

Mir fallen auf Anhieb zwei Wege ein wie ich das lösen würde:

- Bevor Benutzer 1 die Datei läd, erstellst du eine "LOCK" Datei (Dokument1.doc wird angefordert, Dokument1.doc.LOCK wird erzeugt)
- Benutzer 2 fordert die gleiche Datei an, und erhält bei der Prüfung ob eine Lock Datei für diese Datei existiert eine "Bitte warten" Meldung oder so. Damit kannst du sichergehen dass nur ein User die Datei bearbeiten kann.

Der zweite Weg wäre bestimmt besser für dein Anliegen, aber auch deutlich umfangreicher. Und ich bin mir nicht sicher ob du Shell-Zugriff auf deinen Webserver hast:

- Socket-Server (Unter Linux: PHP, RUBY, Freepascal) der die Anmeldung der User und den Dateitransfer steuert
- zu diesem verbindest du dich mit einem Socket-Client den du dir mit Delphi baust
- Der Ablauf könnte dann ähnlich wie beim Versionierungssystem "Subversion" (SVN) laufen:
- CHECKOUT Datei (Datei laden)
- Bearbeitung durch den Benutzer
- UPDATE eventuelle Änderungen die zwischenzeitlich gemacht wurden laden
- Lokale Datei mit der aktuellen Remote Datei vergleichen und die Änderungen manuell durch den Benutzer einpflegen lassen
- oder automatisiert mit einem Merge-Tool (z.B. TortoiseMerge) "zusammenführen" (gibt bestimmt Commandline Tools dafür)
- COMMIT Die lokale (zusammengeführte) Datei zurückschicken

Bestimmt ist auch eine Mixtur aus beidem möglich.

EDIT: Ach, sehe gerade dass ein paar Andere hier ähnliches vorschlagen
Daniel
  Mit Zitat antworten Zitat