tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
4
ZUGRIFFE
504
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    JackSparrrow JackSparrrow ist offline Mitglied
    Registriert seit
    May 2007
    Beiträge
    10
    HI Leute,

    hoffe meine Postings sind so besser als die üblichen. *lächel*

    PROBLEMSTELLUNG:
    Ich möchte den Inhalt einer RichtTextBox mit Zeilenumbrüchen speichern. Der folgende COde kam dabei heraus. Die Fehlermeldung zeigt das ich hier nicht so fit bin. Wer hat das schon mal gemacht und kann mir mir einem kleinen Beispiel den richtigen Weg zeigen?
    QUELLCODE:
    Code :
    1
    2
    3
    4
    5
    6
    7
    
    string verzeichnis = @"C:\MoSysWorkSpace\logs\";
    string datei = verzeichnis + FehlerDateiTXT.Text;
    FileStream fs = new FileStream(datei, FileMode.Open, FileAccess.Read);
    StreamWriter sw = new StreamWriter(fs);
    sw.WriteLine(FehlerDateiTXT.Text);
    sw.Close();
    fs.Close();

    FEHELRMELDUNG:
    See the end of this message for details on invoking
    just-in-time (JIT) debugging instead of this dialog box.
    ************** Exception Text **************
    System.ArgumentException: Stream was not writable.
    at System.IO.StreamWriter..ctor(Stream stream, Encoding encoding, Int32 bufferSize)
    at System.IO.StreamWriter..ctor(Stream stream)
    at MoSysControl.MainForm.ButtonFehlerQuittierenClick(Object sender, EventArgs e)
    at System.Windows.Forms.Control.OnClick(EventArgs e)
    at System.Windows.Forms.Button.OnClick(EventArgs e)
    at System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
    at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
    at System.Windows.Forms.Control.WndProc(Message& m)
    at System.Windows.Forms.ButtonBase.WndProc(Message& m)
    at System.Windows.Forms.Button.WndProc(Message& m)
    at System.Windows.Forms.ControlNativeWindow.OnMessage(Message& m)
    at System.Windows.Forms.ControlNativeWindow.WndProc(Message& m)
    at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)


    ************** Loaded Assemblies **************
    mscorlib
    Assembly Version: 1.0.5000.0
    Win32 Version: 1.1.4322.2032
    CodeBase: file:///c:/windows/microsoft.net/framework/v1.1.4322/mscorlib.dll
    ----------------------------------------
    MoSysControl
    Assembly Version: 1.0.2706.26411
    Win32 Version: 1.0.2706.26411
    CodeBase: file:///G:/DatenPfad/dirk.moll/SharpDevelop%20Projects/Release/MoSysControl.exe
    ----------------------------------------
    System.Windows.Forms
    Assembly Version: 1.0.5000.0
    Win32 Version: 1.1.4322.2032
    CodeBase: file:///c:/windows/assembly/gac/system.windows.forms/1.0.5000.0__b77a5c561934e089/system.windows.forms.dll
    ----------------------------------------
    System
    Assembly Version: 1.0.5000.0
    Win32 Version: 1.1.4322.2032
    CodeBase: file:///c:/windows/assembly/gac/system/1.0.5000.0__b77a5c561934e089/system.dll
    ----------------------------------------
    System.Drawing
    Assembly Version: 1.0.5000.0
    Win32 Version: 1.1.4322.2032
    CodeBase: file:///c:/windows/assembly/gac/system.drawing/1.0.5000.0__b03f5f7f11d50a3a/system.drawing.dll
    ----------------------------------------

    ************** JIT Debugging **************
    To enable just in time (JIT) debugging, the config file for this
    application or machine (machine.config) must have the
    jitDebugging value set in the system.windows.forms section.
    The application must also be compiled with debugging
    enabled.

    For example:

    <configuration>
    <system.windows.forms jitDebugging="true" />
    </configuration>

    When JIT debugging is enabled, any unhandled exception
    will be sent to the JIT debugger registered on the machine
    rather than being handled by this dialog.
    Danke für Eure Hilfe!
    Euer J.S.
     

  2. #2
    MCoder MCoder ist offline Mitglied Diamant
    tutorials.de Premium-User
    Registriert seit
    Jul 2005
    Ort
    München
    Beiträge
    2.448
    Hallo,

    die Fehlermeldungen kommen daher, dass du den Stream zu Lesen öffnest, aber dann darauf schreiben willst (steht auch so in der Fehlermeldung). Das müsste also so aussehen:
    Code cpp:
    1
    
    FileStream fs = new FileStream(datei, FileMode.Create, FileAccess.Write);

    Ist aber alles überflüssige Mühe, da die RichTextBox schon eine Methode zum Speichern mitbringt. Das tut's also auch:
    Code cpp:
    1
    
    FehlerDateiTXT.SaveFile(datei);
    Gruß
    MCoder
     
    "The three chief virtues of a programmer are: Laziness, Impatience and Hubris."
    --- Larry Wall

  3. #3
    JackSparrrow JackSparrrow ist offline Mitglied
    Registriert seit
    May 2007
    Beiträge
    10
    Zitat Zitat von MCoder Beitrag anzeigen
    Hallo,

    die Fehlermeldungen kommen daher, dass du den Stream zu Lesen öffnest, aber dann darauf schreiben willst (steht auch so in der Fehlermeldung). Das müsste also so aussehen:
    Code cpp:
    1
    
    FileStream fs = new FileStream(datei, FileMode.Create, FileAccess.Write);

    Ist aber alles überflüssige Mühe, da die RichTextBox schon eine Methode zum Speichern mitbringt. Das tut's also auch:
    Code cpp:
    1
    
    FehlerDateiTXT.SaveFile(datei);
    Gruß
    MCoder

    Schon richtig, so speicher ich eine Richtext, aber ich brauche die Datei als TXT und vor allem darf es die alten Zeilenumbrüche nicht zerstären, das macht aber .SafeFile(datei)
     

  4. #4
    MCoder MCoder ist offline Mitglied Diamant
    tutorials.de Premium-User
    Registriert seit
    Jul 2005
    Ort
    München
    Beiträge
    2.448
    Zitat Zitat von JackSparrrow Beitrag anzeigen
    vor allem darf es die alten Zeilenumbrüche nicht zerstären, das macht aber .SafeFile(datei)
    Tatsächlich? Ist mir noch gar nicht aufgefallen

    Dann nimmst du halt die Variante, die du schon angefangen hast. Du musst dann eben nur den FileStream auf "Schreiben" umstellen. Außerdem solltest du statt WriteLine() besser Write() nehmen, weil sonst nur eine Zeile geschrieben wird.

    Gruß
    MCoder
     
    "The three chief virtues of a programmer are: Laziness, Impatience and Hubris."
    --- Larry Wall

  5. #5
    JackSparrrow JackSparrrow ist offline Mitglied
    Registriert seit
    May 2007
    Beiträge
    10
    Zitat Zitat von MCoder Beitrag anzeigen
    Tatsächlich? Ist mir noch gar nicht aufgefallen

    Dann nimmst du halt die Variante, die du schon angefangen hast. Du musst dann eben nur den FileStream auf "Schreiben" umstellen. Außerdem solltest du statt WriteLine() besser Write() nehmen, weil sonst nur eine Zeile geschrieben wird.

    Gruß
    MCoder
    Danke. Habs gelöst, war ja nur der Fehler das ich Lesend in ein Datei schreiben wollte.
     

Ähnliche Themen

  1. eingabe richtextbox speichern?
    Von Cirric im Forum Visual Basic 6.0
    Antworten: 2
    Letzter Beitrag: 15.09.08, 08:09
  2. Antworten: 2
    Letzter Beitrag: 28.11.06, 09:31
  3. wie kann ich eine Datei in CYMK modus speichern
    Von Leika45w im Forum Photoshop
    Antworten: 1
    Letzter Beitrag: 09.04.05, 12:02
  4. RichTextBox speichern
    Von schurlisr50 im Forum Visual Basic 6.0
    Antworten: 7
    Letzter Beitrag: 03.04.05, 18:46
  5. Wie kann man ein Array in eine Hashtable speichern
    Von Goldman im Forum .NET Archiv
    Antworten: 1
    Letzter Beitrag: 17.12.03, 14:54