Char Array "Subtrahieren"?



  • Ich mach zurzeit ein Chat Programm, das über eine Datei läuft (Benutzer1 schreibt in datei, b2 liest aus usw.). Also nun das Problem:

    Benutzer1 schreibt "Hallo" in die Datei
    Benutzer2 liest die Datei aus (und erhält "Hallo")
    Benutzer1 schreibt "Wie gehts?" in die Datei
    Benutzer2 liest die Datei aus (und erhält "Hallo\nWie gehts?")

    Nun möchte ich, dass nur die neuen Nachrichten ausgelesen werden, also

    Benutzer2 liest die Datei aus (und erhält "Wie gehts?"),

    "Hallo" sollte also entfernt werden

    Also ich hab mir gedacht ich speichere den Inhalt des Vorherigen auslesens immer in einen String, und subtrahiere diesen String dann mit dem jetzigen Auslesen, aber wie soll das gehen?

    Danke im Voraus



  • Ups, hab "Char Array" in den Titel geschrieben statt "String" ^^

    Naja, ist ja ungefähr das gleiche 😃



  • Arrows schrieb:

    "Hallo" sollte also entfernt werden

    Also ich hab mir gedacht ich speichere den Inhalt des Vorherigen auslesens immer in einen String, und subtrahiere diesen String dann mit dem jetzigen Auslesen, aber wie soll das gehen?

    Kannst Du die Datei nicht nach dem Auslesen löschen?
    Ansonsten wird die Datei ja immer größer, obwohl Du nur das zuletzt angehängte benötigst.
    Anderenfalls merk Dir bei jedem Benutzer, wie lang die Datei beim letzten Mal war (inklusive dessen, was dieser Benutzer noch dazu geschrieben hat, denn das willst Du ja diesem Benutzer auch nicht mehr zeigen), und beim nächsten Lesen überliest Du diese Anzahl Bytes.



  • Also ich finde du solltest deine Methode noch mal überdenken mit dem Chatprogramm das mit einer Datei arbeitet, immerhin kann nur immer ein Process auf eine Datei Schreibzugriff bekommen. Du solltest dich evtl. mit WinSock oder Pipes beschäftigen, so könntest du flexibler und evitienter arbeiten.

    Gruß Tobi



  • @TObi: Nein! Es können mehrere Prozesse eine Datei zum Schreiben öffnen, was dabei allerdings herauskommt hängt sehr von den verwendeten Synchronisationstechniken ab. 🕶



  • Ahso? Ich dachte immer es können zwar mehrere Processe gleichzeitug von einer Datei lesen aber nicht in sie schreiben.



  • wir haben in der schule ne firewall die wirklich alles blockt - nicht mal tunneling hat was gebracht, deswegen die datei

    das schreiben bzw. lesen dauert ein paar millisekunden und wenn man alle 10 sekunden was schreibt ist die chance ziemlich klein, dass 2 leute gleichzeitig in die datei schreiben 😃


Anmelden zum Antworten