Entwickler-Ecke

Internet / Netzwerk - [Netzwerk] Mehrere Benutzer bearbeiten eine Datei


Coder - Di 28.11.06 20:24
Titel: [Netzwerk] Mehrere Benutzer bearbeiten eine Datei
Hi
Ich hab ein Programm geschrieben in dem man, einfach gesagt, mehrere Textblöcke in einer Datei erstellen und bearbeiten kann.
Zur Zeit kann nur eine Person auf die Datei zugreifen und die Textblöcke darin bearbeiten.
Ich würde gern das Feature einbauen, dass mehrere Personen gleichzeitig die Datei bearbeiten können, wenn die Datei im Netzwerk liegt.
Es wird dann so sein das ein Textblock, der gerade von einer anderen Person bearbeitet wird, nur ReadOnly geöffnet werden kann. Die anderen Textblöcke in der Datei sollen aber bearbeitbar bleiben.
Davon hab ich jedoch überhauptkeine Ahnung.

Mit welchem Dateiformat ist soetwas überhaupt möglich?
Geht sowas sogar mit einer binären (Stream.Write, ...) Datei?
Vielleicht mit xml?
Oder kann soetwas nur mit einer Datenbank oder Serveranwendung funktionieren?

Danke schonmal im Vorraus.

MfG


UGrohne - Di 28.11.06 20:48

Ob Xml oder einfacher Text ist egal. Meine Meinung zu Deinem Vorhaben: So wie Du es Dir vorstellst, geht es sicher nicht.

Es müsste jeder Zugreifende die Datei als Kopie öffnen und darin bearbeiten. Änderungen werden dann im Ganzen zurückgeschrieben (also die komplette Datei). Alle anderen holen sich in regelmäßigen Abständen die Quelldatei und prüfen auf Änderungen. Zusätzlich brauchst Du aber dann eine extra Datei, die die Zugriffe regelt und darstellt (so in etwa wie bei Access). Die Zugriffsverwaltung musst Du dann aber auch irgendwo regeln, da würde sich XML anbieten, weil Du dann einfacher definieren kannst, dass z.B. A nur Schreibrechte im Baum ab Element X hat. Das muss aber auch irgendwo stehen.

Und dann musst Du noch bedenken: Das Programm hat ja dann volle Schreibrechte auf die Datei, also kann er sie auch mit einem anderen Programm öffnen und alles bearbeiten.

Tipp: Je nachdem was Du machen willst, solltest Du das über eine Client-Server-Architektur lösen oder über eine Datenbank, auf die jeder zugreift.


Coder - Di 28.11.06 21:05

Hi
Danke für deine Antwort.
Stimmt, wenn Schreibrechte dazukommen wird es deutlich komplizierter.
Ich werde dann wohl eine Server-Software schreiben.
Das stell ich mir so vor, das die Software Daten senden und Empfangen kann.
Dazu gibts zum Glück ein Tutorial von Narses.
http://www.delphi-library.de/topic_54269.html

Was mögen Privatpersonen und Firmen eigentlich lieber?
Server-Software oder Datenbank?
Wie ist das denn bei kommerziellen Produkten wie z.b. Lotus Notes geregelt?

MfG


BenBE - Di 28.11.06 22:11

Schau Dir für dein Vorhaben ggf. auch einmal das Tool Gobby an ... (Open Source). Dass sollte das können, was Du Dir in etwa vorstellst ...