Feste Zeile in datei löschen

Hallo,

tut mir leid das meine Antwort so lange auf sich warten gelassen hat. Ich habe es natürlich umgeschrieben, sodas nur eine Zeile gelöscht wird. Was das Programm auch tut, nur wenn ich die Funktion öfters hintereinander aufrufe (was wohl zu schnell geht), löscht es nicht mehr alle Zeilen. (wobei pro Funktionsaufruf nur eine Zeile gelöscht werden soll.

Viele Grüße und vielen Dank
Fridulin
 
Also, ich würde die Funktion nicht öfter hintereinander aufrufen, weil dies durch das ständige Öffnen der Datei nicht wirklich performant wäre. Schreib dir die zu löschenden Zeilennummern in eine Collection und lösch es in einem Durchlauf. Wie du sowas machen kannst, hat mein kleines Demo-Tool gezeigt. Das anzupassen sollte wirklich kein Problem sein.
 
Hallo,

nagut im meinen Programm wird vermutlich die Funktion 1 bis 2 mal hintereinander aufgerufen. Ich habe es öfters nur zu Testzwecken aufgerufen. Im normal Betrieb, sollte dies aber nicht geschriehen. Allerdings funktioniert es schon bei 2 Zeilen nicht mehr.
Danke für die Informationen bezüglich einer Collecion. Ich binn noch am überlegen, ob es so löse oder ganz die Datei weglasse und es alles in ein Array zwischenspeichere und bearbeite.

Viele Grüße und vielen Dank für deine Hilfe
Fridulin
 
Naja, ich weiß jetzt mittlerweile auch nicht mehr genau wo das Problem liegt: Laut dem letzten Sourcecode-Auszug den du gepostet hast, löscht er ja noch immer n Zeilen von Beginn der Datei an. Das ist ja nicht was du willst? Daher wirst du die Methode umschreiben müssen.
 
Hallo,

merkwürdigerkeise tut der Source Code das aber, ich sehe ehrlich gesagt auch nicht warum er immer ab der ersten Zeile löschen soll.
Die Funktion bekommt die Int Variable "zeile" übergeben, wobei die "count" Variable mit "zeile" gleichgesetzt wird. Dann liest er die Zeilen ein in der while Schleife, esseiden "currCount != count" wobei count die Zeile entspricht, dann schreibt er es nicht in "sb" rein. Später schreibt er alles wieder zurück was in "sb" steht in die Datei. Oder habe ich jetzt einen Denkfehler?

Viele Grüße
traumpaar
 
Jetzt hab ich mich vertan. Passt schon. Was macht er denn beim zweiten Aufruf genau falsch? Kanns sein, dass du ihm eine falsche Zeilennummer mitgibst, da ja bereits eine gelöscht wurde und somit die falsche Zeile gelöscht wird?
 
Hallo,

stimmt, das wird der Fehler sein. Die andere Funktion bekommt es ja nicht mit und Zählt einfach mit der alten Zeilennummer weiter hoch. Da bin ich echt nicht drauf gekommen. Das bedeutet ich muß wiklich eine Collection machen bzw. mich darüber einmal schlau machen, oder eben alles in einen Array packen und den bearbeiten.
Das Programm soll ein Server werden bzw. ist schon ein kleiner. der Client wählt sich mit Username und & PW ein und dann packt er es in einer Datei mit der aktuellen Zeit und IP. Die Funktion hat die Aufgabe den client wieder auszutragen, falls er sich nicht nach 2 Min wieder gemeldet hat.

Viele Grüße und vielen Dank noch einmal für deine Hilfe.
Fridulin
 
Zurück