c# - Datei mit StreamReader mehrmals lesen?
lima-city → Forum → Programmiersprachen → Programmieren mit .NET & Mono
anfang
auslese
ausprobieren
austoben
code
dank
datei
eigenschaft
ende
file
folgendes aufgefallen
position
schleife
setzen
springen
string
variablen speichern
weglassen
wiederholen
zeile
-
Hallo Leute,
heute wollte ich das erste Mal ausprobieren wie man mit C# Dateien erstellt, ausliest und ändert.
Dabei ist mir folgendes aufgefallen und würde gerne wissen ob es alternative, weniger umständliche Möglichkeiten gibt das folgende Problem zu lösen:
Ich habe mittels StreamReader eine Datei Zeile für Zeile bis zum Ende gelesen. Als ich dann mit dem selben StreamReader die Datei nochmal lesen will stellte sich mir das Problem, dass ich mich am Ende der Datei befand und es nichts mehr zu lesen gab, ich allerdings ich (auch nach langem Googlen) keine Möglichkeit fand zum Anfang der Datei zu springen um sie nocheinmal mit dem selben StreamReader zu lesen. In C gibt es dafür die Funktion fseek, gibt es etwas ähnliches auch in C# ?
Mir ist klar, dass man auch einfach einen neuen StreamReader für die Datei öffnen kann oder den Inhalt beim ersten Lesen in Variablen Speichern kann, doch mich interessiert es trotzdem.
Danke im Voraus
Pandaro
Edit: Ich glaub ich hab im Thema das "Visual" vor dem c# vergessen. ^^
Beitrag zuletzt geändert: 5.12.2010 0:00:38 von pandaro -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Es gibt nur ein C#, deshalb kann man das "Visual" auch weglassen. ;)
Du kannst die Eigenschaft `Position` vom Stream auf `0` setzen, so etwa:
Das funktioniert aber nur, wenn die Eigenschaft `CanSeek` von `StreamReader.BaseStream` `true` ist.StreamReader reader = new StreamReader(path); // [...] Alles auslesen // Zurück an den Anfang: reader.BaseStream.Position = 0; reader.DiscardBufferedData;
-
Danke für die schnelle und gute Antwort!
-
Hallo,
du kannst aber auch einfach die Methode File.ReadAllLines benutzen. Diese gibt dir ein string[] zurück. In diesem Array kannst dich dann austoben und brauchst dich nicht mehr um die Datei selber kümmer :)
string[] lines = File.ReadAllLines("readme.txt"); foreach (string line in lines) { Console.WriteLine(line); }
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage