Entwickler-Ecke

C# - Die Sprache - Inhalt einer Textdatei in einer Message Box anzeigen lassen


Darkcallen - Di 11.03.08 15:52
Titel: Inhalt einer Textdatei in einer Message Box anzeigen lassen
Hi

Kann ich den Inhalt einer Textdatei in einer Message Box anzeigen lassen?

Gruß darkcallen


golgol - Di 11.03.08 16:04

Ja, Textdatei auslesen und in einen String (myString) packen. Anschließend dann


C#-Quelltext
1:
MessageBox.Show(myString);                    


Darkcallen - Di 11.03.08 16:56

Habe folgendes versucht, aber er sagt das Streamreader Argument kann nicht in String konvertiert werden.


C#-Quelltext
1:
2:
3:
4:
System.IO.StreamReader datei;
datei = System.IO.File.OpenText("Error.log");
datei = ToString();
MessageBox.Show(datei);


Was mache ich falsch??


Gruß Darkcallen


Th69 - Di 11.03.08 17:20

Was soll deiner Meinung nach denn bei "datei = ToString();" passieren?
Du weißt schon, daß string und StreamReader zwei verschiedene Datentypen sind, oder?

Nimm entweder die Funktion, die in der MSDN Hilfe unter "Gewußt wie: Lesen aus einer Textdatei" steht oder aber benutze die StreamReader-Funktion "ReadToEnd()".

Alternativ kannst du auch die Funktionen aus der Klasse 'File' benutzen.


MaSTäR - Di 11.03.08 17:43

hi,

kann mich ja nur noch mein vorgänger anschließen :-)


C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
      
System.IO.StreamReader datei = System.IO.File.OpenText("test.txt");
string str = "";

str += datei.ReadToEnd();
            
MessageBox.Show(str);


MfG


JüTho - Di 11.03.08 18:02

user profile iconMaSTäR hat folgendes geschrieben:
kann mich ja nur noch mein vorgänger anschließen :-)

C#-Quelltext
1:
2:
3:
System.IO.StreamReader datei = System.IO.File.OpenText("test.txt");
string str = "";
str += datei.ReadToEnd();

Ich schließe mich Th69 ebenfalls an, aber ausgerechnet dieser Code ist eher unsauber:

Strings sind in C# unveränderlich. Die Verknüpfung mit += ist also absolute Ausnahme (und gehört schon deshalb nicht in Beispielcodes).

In dieser Situation ist es auch überflüssig, denn ReadToEnd liest alles in einen String ein; also kann das direkt zugewiesen werden:

C#-Quelltext
1:
string str = datei.ReadToEnd();                    


user profile iconDarkcallen hat folgendes geschrieben:
Was mache ich falsch??

Dein entscheidendes Problem ist, dass Du streng auf Typen achten musst! Bei allen Zuweisungen müssen die Typen (in diesem Fall StreamReader und string) zusammenpassen; wenn dies nicht gegeben ist und es keine implizite Konvertierung gibt, musst Du explizit konvertieren.

Jürgen


MaSTäR - Di 11.03.08 18:06

wie recht du hast ... entschuldigt bitte :-)


Kha - Di 11.03.08 20:22

Ich schließe mich ebenfalls an der Aussage an, dass man für so etwas einfacher die Methoden der File-Klasse benutzt - die da wären ReadAllLines und ReadAllText :zwinker: . OpenText ist ja wohl eine der unnötigsten Methoden überhaupt, ich habe habe gerade das erste Mal überhaupt von ihr gehört.


Darkcallen - Mi 12.03.08 08:46

Danke Euch

Ich habe es dank euch jetzt verstanden.
Das mit Opentext stand in einen Galileo Buch über c#.
Man wird jeden tag schlauer.
Ist Neuland für mich das alles.


Gruß Darkcallen