Entwickler-Ecke

WinForms - RichTextBox: Probleme mit dem Fileloading


ThomAlex - Do 11.02.10 18:18
Titel: RichTextBox: Probleme mit dem Fileloading
Hallo zusammen, wie im Titel zu sehen kann ich keine Files in die RTBox laden. Es wird zur Laufzeit eine ArgumentException geworfen. ich lade eine Datei text vom Typ rtf: "text.rtf". Dies ist mein Fehlercode:


C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
private void DataLoad()
{
     OpenFileDialog mydialog = new OpenFileDialog();

     mydialog.DefaultExt = "*.rtf";
     mydialog.Filter = "RTF Files|*.rtf";

     if (mydialog.ShowDialog() == DialogResult.OK)
                richTextBox1.LoadFile(mydialog.FileName);//ArgumentException
}

Hoffe ihr wisst woran es liegt.
MFG > ThomAlex


JüTho - Do 11.02.10 18:27

Ich wusste es nicht, aber ein Blick in die SDK-Doku/MSDN/Hilfe bringt es:
Zitat:
RichTextBox.LoadFile-Methode (String)
Ausnahmen
IOException - Fehler beim Laden der Datei in das Steuerelement.
ArgumentException - Die zu ladende Datei ist kein RTF-Dokument.

Vielleicht solltest du eine andere Variante von LoadFile verwenden, nämlich mit RichTextBoxStreamType.

Auch das ist ein wichtiges Argument für den eigenen, selbständigen Blick in die SDK-Doku: Du findest selbst Erklärungen und Alternativen, vor allem die vielen Überladungen.

Jürgen


Christian S. - Do 11.02.10 18:28

Was ist denn der Beschreibungstext zu der Exception?

//edit: Okay, das hat sich wohl erledigt. ;-)


ThomAlex - Do 11.02.10 18:31

user profile iconChristian S. hat folgendes geschrieben Zum zitierten Posting springen:
Was ist denn der Beschreibungstext zu der Exception?

//edit: Okay, das hat sich wohl erledigt. ;-)


Der Beschreibungstext ist: Ungültiges Dateiformat.
Vielleicht ist es mit der anderen Methode möglich, doch es kann doch nicht sein, dass diese Methode nicht funktioniert. Mein Lehrer hat es heute nämlich an meinem Rechner probiert und nicht verstanden, woran es liegen kann. Zuhause klappt es ebenfalls nicht. Aber um zu zeigen, wo der Haken ist, möchte ich diese Methode weiterhin nutzen, von daher bitte ich um Überlegungen.

außerdem bringt RichTextBoxStreamType.X auch nen Fehler mit sich. Der in meinem File sich befindene Text wird nicht in der Box ausgegeben, sondern ein ellenlanger unverständlicher Code von Zeichensatz. Dies klappt also auch nicht.


Christian S. - Do 11.02.10 18:40

Es wird wohl irgendwie an der Datei liegen, die Du öffnen willst :nixweiss:

Kannst die ja mal anhängen, dann schauen wir, was es mit der auf sich hat.


JüTho - Do 11.02.10 19:09

Tja, wenn da drin steht "Microsoft Office Word-Dokument" und es ganz offensichtlich kein RTF ist, braucht sich niemand zu wundern. Jürgen


ThomAlex - Do 11.02.10 19:13

also bei mir steht in den eigenschaften unter Dateityp: Rich Text Format oder sehe ich das falsch? Ich verstehe dass *.doc Dateien nicht eingebunden werden können, aber dies ist nicht der Fall. Außerdem wäre es komisch wenn man für RT Formate RT Textprogramme benötigte.

/edit: Ich habe es auch gerade mit einer allgemeinen MFC-Anwendung versucht, vergeblich.


Christian S. - Do 11.02.10 19:16

Das ist ein Word-Dokument, welches nur die Endung "rtf" hat (und daher von Windows fälschlich als Rich Text Format bezeichnet wird).


ThomAlex - Do 11.02.10 19:19

ok danke ich habe es als RTF abgespeichert und es klappt, dachte durch Umbenennung des Dateityps würde dieser sich auch implizit und nicht nur explizit ändern, Danke für die Mühe
MFG > ThomAlex