"We are back" « oc.at

Java Prob it Dateien / Zeilen löschen

LakeBodom 19.05.2003 - 10:06 615 8
Posts

Bodominjaervi

OC Addicted
Registered: Jul 2002
Location: AT
Posts: 7808
Hab eine Frage zu JBuilder 4.0. Ists möglich aus einer Datei zeilenweise zu löschen? Hab schon in der Java-Insel gesucht, leider aber nichts gefunden. :(

Hab eine Listbox, in der Spiele stehen, die gelöscht werden sollen. Nur wie kann ich zeilenweise löschen?

Eine Möglichkeit wär die gesamte Datei zwischenzuspeichern, die alte Datei löschen, dann die Sätze in die neue Datei schreiben und speichern. Is aber a bissi umständlich. Gibts eine andere Lösung :confused:

Tia

Ringding

Pilot
Avatar
Registered: Jan 2002
Location: Perchtoldsdorf/W..
Posts: 4300
Zitat
Gibts eine andere Lösung :confused:

Nein.

Nur was hat das mit einer Listbox zu tun?

Bodominjaervi

OC Addicted
Registered: Jul 2002
Location: AT
Posts: 7808
Zitat von Ringding
Nur was hat das mit einer Listbox zu tun?

Wollt nur das Problem a bissi beschreiben. Also muss i die Datei löschen und neu anlegen. :(

watchout

Legend
undead
Avatar
Registered: Nov 2000
Location: Off the grid.
Posts: 6845
Zitat von LakeBodom
Wollt nur das Problem a bissi beschreiben. Also muss i die Datei löschen und neu anlegen. :(
ps: das problem hast du nicht nur in java ;)

edit: mhh, es gibt aber schon ne möglichkeit, du kannst zb ne zeile ausblenden indem du ein definiertes zeichen davorsetzt, welches dann von der lesenden funktion ignoriert wird ;)
Bearbeitet von watchout am 19.05.2003, 22:24

Ringding

Pilot
Avatar
Registered: Jan 2002
Location: Perchtoldsdorf/W..
Posts: 4300
Und dafür musst du dann die Datei nicht neu schreiben?

cgint

Bloody Newbie
Avatar
Registered: May 2003
Location: linz-urfahr
Posts: 10
du kannst jedem eintrag eine ID geben
und dann in einer zweiten datei die IDs sammeln,
die nicht mehr angezeigt werden sollen.

is aber echt NUR zu empfehlen, wenn du die datei
auf keinen Fall neu schreiben willst.
z.B.: wenn ein zweites programm gleichzeitig einträge
anhängt oder so

aber ansonsten wirst du nicht um die version mit
komplett neuschreiben nicht herumkommen.
ausser du nimmst a datenbank :)

cgint

watchout

Legend
undead
Avatar
Registered: Nov 2000
Location: Off the grid.
Posts: 6845
@ringding: ich mein, ich kenn java nicht wirklich, aber wenn du nur das erste zeichen von ner zeile ersetzt musst du normal nicht alles ersetzen, was natürlich nix daran ändert, dass sowas normal kaum notwendig is

Bodominjaervi

OC Addicted
Registered: Jul 2002
Location: AT
Posts: 7808
imho is aber auch nicht möglich, in java eine zeile zum verändern, ohne die datei neu zu schreiben! :(

cgint

Bloody Newbie
Avatar
Registered: May 2003
Location: linz-urfahr
Posts: 10
Zitat von LakeBodom
imho is aber auch nicht möglich, in java eine zeile zum verändern, ohne die datei neu zu schreiben! :(

da kann ich nur zustimmen,
egal oba man ein zeichen, eine zeile oder ein wort
entfernen oder ersetzen möchte.

man kommt nicht drum rum, die gesamte datei einzulesen
und die geänderte version abzuspeichern.


eine möglichkeit wäre noch, mit RandomAccessFile zu arbeiten.
das würde die lösung mittels "flag" möglich machen, wo zu beginn
einer zeile das "flag" aussagt, ob der eintrag angezeigt werden soll oder nicht
einzelne zeilen kann man damit auch nicht löschen

dabei gibt es aber auch zwei einschränkungen.
1) jeder eintrag (zeile) muss gleich lange sein (fixed-length-record).
2) du musst genau wissen, wo in der datei das zeichen ist, das du
über schreiben willst

EDIT: ad 2) sprich der wievielte eintrag zu deaktivieren ist, was ja wiederum kein problem ist, weil du die einträge ja zuvor ausliest

siehe http://developer.java.sun.com/devel...000/tt0509.html

cgint
Bearbeitet von cgint am 20.05.2003, 15:20 (the brain the brain - always the brain)
Kontakt | Unser Forum | Über overclockers.at | Impressum | Datenschutz