Textbox.text => File => falscher Fileinhalt

SteinLaus

Grünschnabel
Hallo Leute, weiß einer Hilfe?
Problem beim schreiben einer Textbox auf File, nach Veränderungen an Textbox.Text.

- Ich öffne das File und schreibe den Inhalt in die Textbox, s.u. Pkt 1.
- Danach verändere ich den Inhalt der Textbox:
Entferne einige Zeichen aus der Mitte der letzten Zeile des Textboxinhalts. (Pkt 2.)
- Zuletzt schreibe ich den veränderten Textbox.Text nach File (Pkt.3)
- Ergebnis: das weggeschriebene File entspricht nicht dem Editorfensterabbild.



Das Resultat des Vorgehens am Textfile:

Vor Veränderung:
Beginn Textfile:
1234567890 1234567890 1234567890 1234567890 1234567890 beliebig 1. Zeile
*
*
*
1234567890 1234567890 1234567890 1234567890 1234567890 beliebig Ende
Ende Textfile


Editorsession, Veränderung, ein paar Zeichen in letzter Zeile entfernt:
Beginn Textfile:
1234567890 1234567890 1234567890 1234567890 1234567890 beliebig 1. Zeile
*
*
*
1234567890 1234567890 12345674567890 beliebig Ende
Ende Textfile


Nach dem Wegschreiben des editierten Textes:
Beginn Textfile:
1234567890 1234567890 1234567890 1234567890 1234567890 beliebig 1. Zeile
*
*
*
1234567890 1234567890 12345674567890 beliebig Ende67890 beliebig Ende
Ende Textfile
(oder ähnlich, evtl. sogar ein weiterer Zeilenumbruch (CR/LF) vor Zeilenende)



Programmcode mit dem die einzelnen Schritte (lesen / schreiben) des Files durchgeführt
werden:
1. holen von File:
Dim sFilePath As String = "D:\ProDa\myVB\TestDaten\dexd001.txt"
Dim stream As FileStream = New FileStream(sFilePath, FileMode.Open)
Dim tfile As StreamReader = New StreamReader(stream, System.Text.Encoding.Default)

TextBox1.Text() = tfile.ReadToEnd()
tfile.Close()


2. editieren, File verändern: (in der Textbox)

3. wegschreiben auf File:
Dim sFilePath As String = "D:\ProDa\myVB\TestDaten\dexd001.txt"
Dim stream As FileStream = New FileStream(sFilePath, FileMode.Open)
Dim tfile As StreamWriter = New StreamWriter(stream, System.Text.Encoding.Default)

tfile.Write(TextBox1.Text)
tfile.Close()


Mach ich da was falsch?
Hinweis sehr willkommen, Danke!
 
Habe selbst die Lsg gefunden:

Dim stream As FileStream = New FileStream(sFilePath, FileMode.Open)

beim schreiben muss durch:

Dim stream As FileStream = New FileStream(sFilePath, FileMode.Create)

ersetzt werden. Damit wir ein neues File erzeugt. Im ersten Fall wird das
alte File überschrieben, so dass bei kurzer Überschreibung ein Rest des
alten Inhaltes bestehen bleibt.

Eine deutliche Information dazu gibt es in der Dokumentation anscheinend nicht.
 

Neue Beiträge

Zurück