Laden...

Text an den Anfang einer Datei schreiben

Erstellt von SlEasy vor 19 Jahren Letzter Beitrag vor 19 Jahren 2.070 Views
S
SlEasy Themenstarter:in
81 Beiträge seit 2004
vor 19 Jahren
Text an den Anfang einer Datei schreiben

Hallo,

weis jemand wie man Text am Anfang einer Datei einfügt? Gibt es irgenwelche Framework-Funktionen?

Danke

Y
220 Beiträge seit 2004
vor 19 Jahren
Namensraum System.IO

Hallo,

dazu gibt's Methoden im Namensraum System.IO
Mehr dazu in der MSDN von MS.

Da kann man Files in bestimmten Modis aufmachen, z.B. Append (AM Ende anfügen).

Hoffe das war ein Denkanstoß,

Yahoo

S
SlEasy Themenstarter:in
81 Beiträge seit 2004
vor 19 Jahren

Habe aber leider nichts gefunden mit dem man etwas am Anfang einer Datei einfügen kann. Wenn ich den Cursor des Streams (Stream.Position) auf 0 setze kommt eine Exception dass dies nicht geht.

49.485 Beiträge seit 2005
vor 19 Jahren

Hallo SlEasy,

soweit ich weiß, gibt es keine Möglichkeit (direkt mit den Methoden des Frameworks) in Dateien (egal welche Stelle) etwas einzufügen (nur anfügen geht, wie yahaoo geschrieben hat). Es bleibt also nur, die Datei komplett neu zu schreiben, erst das, was du einfügen willst, und dann den bisherigen Inhalt der Datei, den du dazu vorher auslesen musst. Alternativ kann man den neuen und bisherigen Inhalt auch erst zusammen in eine neue Datei schreiben und erst danach die alte Datei löschen und der neuen Datei anschließend den alten Namen geben.

HTH

herbivore

S
SlEasy Themenstarter:in
81 Beiträge seit 2004
vor 19 Jahren

Schade, schade.... aber trotzdem danke!

_
416 Beiträge seit 2005
vor 19 Jahren

Hi,

also ich denk auch nicht dass es da schon was gibt. Zumal das auch recht aufwendig ist, wenn du bedenkst wie Dateien auf der Festplatte abgespeichert werden. Wenn du aber denkst dass du wirklich brauchst, kannst du dieses Feature auch ganz einfach selbst bewerkstelligen:

  1. du leitest dir einen neuen Stream ab
  2. initialisierst einen Memorystream der alle eingaben erstmal in den RAM schreibt.
  3. ist der Memorystream voll (wenn du vorher eine maximal kapazität angibst) oder wenn geflusht wird, setzt du die Länge deiner Datei hoch und ließt immer blockweise Daten am Ende ein und verschiebst diese dann nach hinten. Das ganze bis du an die Einfügeposition kommst. Dann kannst du die neuen Daten an den freigewordenen Platz schreiben.
1.985 Beiträge seit 2004
vor 19 Jahren

Hallo,

gibt es nicht die Methode Peek()?. Ich weiß jetzt leider nicht auswendig, ob die nur für das Lesen benutzt werden kann, oder auch zum Schreiben. Soweit ich weiß, kann man aber mit dieser Methode den Zeiger einer Datei verändern.

Gruß,
Fabian

"Eine wirklich gute Idee erkennt man daran, dass ihre Verwirklichung von vornherein ausgeschlossen erscheint." (Albert Einstein)

Gefangen im magischen Viereck zwischen studieren, schreiben, lehren und Ideen umsetzen…

Blog: www.fabiandeitelhoff.de