Laden...

Zeile im Text Dokument löschen

Erstellt von macke_a vor 15 Jahren Letzter Beitrag vor 15 Jahren 1.093 Views
M
macke_a Themenstarter:in
291 Beiträge seit 2007
vor 15 Jahren
Zeile im Text Dokument löschen

Zur Datenspeicherung schreibe ich Strings auf ein TextDokument. Dabei will ich maximal 10Eintrage, was für mich ausreichend ist, speichern. Sobald 10Einträge vorhanden sind fange ich wieder von vorne an.

Jetzt möchte ich aber bevor ich den 11Eintrag schreibe, den Inhalt von der ersten Zeile komplett löschen. Die Texte habe unterschiedliche Längen und ich möchte nur Daten bzw. den String vom neuen Eintrag in der Zeile stehen haben.

Wie kann ich am sinnvollsten einen Text aus eine Zeile löschen?
Zur Zeit frage ich den Länge des aktuell in der Zeile vorhanden Textes ab und schriebe xmal einen Leerstring (0x20) an die Zeile. Falls der Text also 30Zeichen hatte, so wird 30mal eine "Space" geschrieben. Dieser Space benötigt aber auch Speicherplatz. Welche Möglichkeiten besteht das ich den Inhalt einer Zeile löschen kann, ohne das ich Speicher verschwenden muss?

J
3.331 Beiträge seit 2006
vor 15 Jahren

Hallo,

leider sagst Du nicht, mit welchen Klassen Du zugreifen willst. Ein TextDocument ist normalerweise eine Datei (von spezieller Struktur) auf der Festplatte, aber nichts, mit dem man innerhalb eines NET-Programms arbeiten könnte. Außerdem verschweigst Du uns, was ein "Eintrag" ist, genauer: wodurch Du zwischen dem ersten und dem zweiten Eintrag unterscheiden kannst.

Je nachdem gibt es viele Lösungen, die alle mehr oder weniger trivial sind. Deshalb bekommst Du nur ein paar Hinweise:

Wie poste ich richtig? Punkte 1.1.1, 5, 9
:rtfm: File.ReadAllText, File.ReadAllLines (analog Write), String.Remove (vor allem der letzte Hinweis ist durch eigenes Nachlesen schnell zu finden)
Forumssuche z.B. nach text löschen
Mehr Eigeninitiative bitte, z.B. durch Schau in die Doku! - Möglichkeiten der Informationsgewinnung

Gruß Jürgen

49.485 Beiträge seit 2005
vor 15 Jahren

Hallo macke_a,

vom Grundsatz: Datei einlesen, im Hauptspeicher bearbeiten, Datei komplett zurückschreiben. Siehe auch [Tutorial] Alles über Dateien 2.2.

herbivore

M
macke_a Themenstarter:in
291 Beiträge seit 2007
vor 15 Jahren

Hallo!
Um eine Zeile in einem Text Dokument zu löschen, benötige ich noch einmal euren Rat bzw. eine Idee wie ich am besten mein Vorhaben lösen kann.

Ich will mal eine Beispiel bringen um meine Thematik etwas deutlicher zu beschreiben.
Der erste Eintrag im Textdokument könnte den folgenden Inhalt haben:
Guten Tag meine Damen und Herren! (33Byte lang)

Der Text steht an der ersten Stelle im Textdokument. Um diesen Text zu überschreiben, möchte ich gerne die ganze Zeile vorher löschen, denn es besteht die Möglichkeit das ein neuer Text an die erste Stelle geschrieben werden kann, der wesentlich kurzer ist. Der geschriebene Text hat eine Länge von 33Bytes.

Wie kann ich den Text löschen, sodass die erste Zeile 0Bytes an Inhalt hat?
Momentan überschreibe ich den Text, indem ich 33mal ein Space (0x20) schreibe. Somit ist der Inhalt weg, aber die Datenmenge von 33Bytes bleibt!

Jemand ne Idee was ich da machen kann?

J
3.331 Beiträge seit 2006
vor 15 Jahren

Versuch doch erst einmal mit den schon gegebenen Hinweisen zu arbeiten. Was hast Du denn konkret versucht? Jürgen

M
macke_a Themenstarter:in
291 Beiträge seit 2007
vor 15 Jahren

Was hast Du denn konkret versucht?

Wie kann ich den Text löschen, sodass die erste Zeile 0Bytes an Inhalt hat, ohne das ich x-mal Space (0x20) für den alten Text als "Platzhalter" schreiben muss.

Dafür brauche ich eine Lösung oder einen Ansatz zur Programmierung!

J
3.331 Beiträge seit 2006
vor 15 Jahren

Was hast Du denn schon konkret versucht?

Dazu schreibst überhaupt nichts, gar nichts!

Steht doch alles schon da:

vom Grundsatz: Datei einlesen, im Hauptspeicher bearbeiten, Datei komplett zurückschreiben.

Dazu ergänzend, siehe :rtfm:

File.ReadAllText, String.Remove, File.WriteAllText

So langsam reicht es: Wenn Du mit diesen Hinweisen nichts anfangen kannst, wie willst Du dann etwas lernen? Wie poste ich richtig? Punkte 1.1.1, 4, 9

Jürgen

M
macke_a Themenstarter:in
291 Beiträge seit 2007
vor 15 Jahren

Na dann beenden wir die Diskussion hiermit!

49.485 Beiträge seit 2005
vor 15 Jahren

Hallo macke_a,

Wie kann ich den Text löschen, sodass die erste Zeile 0Bytes an Inhalt hat?

das geht eben nur, in dem du die Datei komplett neu schreibst.

herbivore

M
macke_a Themenstarter:in
291 Beiträge seit 2007
vor 15 Jahren

Hallo Herbivore,
danke für den Hinweis.

macke_a