Hallo und
bei NET musst Du Dir angewöhnen, in der
SDK-Doku/MSDN nachzulesen, ob es nicht auch eine passende Überladung gibt. Die Lösung mit StreamReader findest Du im Beispiel zum
StreamReader-Konstruktor (String, Encoding).
Zum Einlesen von Texten gibt es meistens einfachere Lösungen. Ich bevorzuge
File.ReadAllLines und
File.ReadAllText (beides gibt es auch mit Encoding). (Es könnte allerdings sein, dass der StreamReader in Deinem Fall das einfachste ist: Zeile 0 mit Verknüpfung, Zeile 1 bis 4 direkt übertragen, den ganzen Rest zusammenfassen.) Beachte dabei, dass Arrays in NET (im wesentlichen) eine feste Größe haben und im Prinzip unveränderlich sind. Gleiches gilt für Strings; das Umkopieren von vielen oder großen Strings ist zu vermeiden.
Für Objekte wie den StreamReader solltest Du Dir eine Konstruktion mit dem
using-Block angewöhnen:
C#-Quelltext
1: 2: 3: 4: 5:
| using(StreamReader sr = new StreamReader(...)) { while(string s = sr.ReadLine() != null) { } } |
Ein StreamReader muss nach Erledigung geschlossen und beendet werden. Mit dem using-Block wird das automatisiert.
Der '@' gehört zu String-Konstanten, nicht zu String-Variablen.
Ich empfehle auch, Laufindizes bei Schleifen immer bei 0 zu beginnen, da das auch C# macht. (Das ist bei Deiner Lösung natürlich unwichtig.)
Zur Einführung möchte ich Dich noch auf
OpenBook Visual C# hinweisen.
Gruß Jürgen