PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Wie fülle ich den stream mit meinem text feld?


AYAlf
2009-06-06, 19:44:46
VISUAL BASIC


Dim myStream As Stream
Dim saveFileDialog1 As New SaveFileDialog()

saveFileDialog1.Filter = "txt files (*.txt)|*.txt|All files (*.*)|*.*"
saveFileDialog1.FilterIndex = 1
saveFileDialog1.RestoreDirectory = True
saveFileDialog1.FileName = "cls" & lsbTabelle.SelectedItem

If saveFileDialog1.ShowDialog() = DialogResult.OK Then
myStream = saveFileDialog1.OpenFile()
If (myStream IsNot Nothing) Then



' Code to write the stream goes here.
myStream.Close()
End If
End If

Monger
2009-06-06, 22:37:30
Ein paar mehr Infos, wenn man bitten darf. Mit was konkret hast du Probleme?
Wir sind hier nicht dazu da, Hausaufgaben für dich zu lösen.

Gast
2009-06-07, 00:05:46
1.) Er weiß nicht, wie er einen FileStream dazu bringen kann, Text zu schreiben, das ist doch ersichtlich

2.) Falls du nur einen Text in die Datei schreiben willst, ist folgende Funktion nützlich:
My.Computer.Filesystem.WriteAllText(saveFileDialog.Filename,TXT_DeineTextBox.Tex t,False)

Der letzte Parameter bestimmt, ob du den Text an die Datei anhängen willst, oder diese überschreiben willst.

WriteAllText übernimmt das Öffnen und Schließen der Datei automatisch und hat auch eine gute Performance, wenn man mehrere Textzeilen hintereinander schreiben will (mit append=true). Man braucht keinen Stream mehr händisch erzeugen. Weiters übernimmt die Funktion auch automatisch den UTF-8 Header der Datei, damit diese von diversen Texteditoren richtig interpretiert wird.

Falls du das Ganze doch händisch machen willst z.B. wenn du die Daten übers Netzwerk verschicken willst, gibt es auch noch die Klasse System.Text.Encoding

Hier hast du folgenden Code:
Dim MyStream as FileStream=SaveFileDialog.OpenFile()
Dim ToWrite() as Byte = System.Text.Encoding.Default.GetBytes()
MyStream.Write(ToWrite,0,ToWrite.Length)
MyStream.Close()

Du kannst statt Default (aktuelle Systemcodierung) auch andere Codierungen nehmen (z.B. ASCII, eine andere länderspezifische, UTF8, Unicode). Wenn du die Datei dann jedoch mit einen Texteditor aufmachen willst, brauchst du bei UTF8 bzw. Unicode einen Vorspann vor die Datei, um diese als UTF8 zu kennzeichnen. Google wird dir helfen oder eventuell gibt es das auch eine Fuktion der Klasse, Encoding, die dir die Preamble liefert (bin mir da nicht sicher)

Monger
2009-06-07, 00:53:12
Google wird dir helfen oder eventuell gibt es das auch eine Fuktion der Klasse, Encoding, die dir die Preamble liefert (bin mir da nicht sicher)
Das macht alles System.IO.StreamWriter . Mit dem Stream instanziieren, und dann auf den Stream rausschreiben. Der frisst auch einen Parameter für Encodings (Standard: UTF-8 mit Präambel).

Gnafoo
2009-06-07, 22:49:05
Die StreamWriter-Klasse, deren Konstruktor du den Stream übergeben kannst unterstützt die Methoden write(...) und writeLine(...), um Textdaten zu schreiben. Pseudocode in C#:


using (Stream stream = saveFileDialog1.OpenFile())
{
using (StreamWriter writer = new StreamWriter(stream))
{
writer.WriteLine("Hallo Welt!");
}
}