Frage

Wie geben Sie, wo in einer Datei lesen zu starten, wenn Stream mit?

Ich habe ein Streamobjekt erstellt, zusammen mit einem Datei-Stream-Objekt. Nachdem beiden Objekte erstellt werden, wie würde ich mich auf der Steuerung, wo ich die Stream will aus einer Datei zu lesen beginnen?

Lassen Sie uns sagen, den Inhalt der Datei sind wie folgt,

// song list.
// junk info.
1. Song Name
2. Song Name
3. Song Name
4. Song Name
5. Song Name
6. Song Name

Wie würde ich steuern, um die Stream lesen von dem 2 # sagen lassen? Auch, wie könnte ich auch steuern, wo es durch einen ähnlichen Begrenzer Lese zu stoppen wie bei # 5?

Edit: Mit dem Begrenzer ich meine, auf eine Art und Weise Stream zu machen beginnt beim Lesen ( '2.')

War es hilfreich?

Lösung

Sind Sie versuchen, eine Datei in ein In-Memory-Objekt deserialisieren? Wenn ja, möchten Sie vielleicht einfach die gesamte Datei analysieren Sie sich mit der ReadLine oder etwas ähnliches, speichern Sie jede Zeile, und dann über eine Datenstruktur zugreifen wie ein KeyValuePair<int, string>.

Update: Ok ... Mit dem neuen Info, ich glaube, Sie haben zwei Möglichkeiten. Wenn Sie beim Lesen freuen, bis Sie ein Spiel zu finden, können Sie Peek(), überprüfen Sie, ob der Charakter derjenige ist, für den Sie suchen, und dann Read(). Alternativ, wenn Sie sich für eine Soll-Position suchen, können Sie einfach Read(), dass viele Zeichen und wegzuwerfen den Rückgabewert.

Wenn Sie sich für komplexe Trennzeichen suchen, können Sie die gesamte Zeile lesen oder sogar die gesamte Datei in den Speicher und verwenden Reguläre Ausdrücke .

Ich hoffe, das hilft ...

Andere Tipps

Wenn die Datei enthält neue Zeile Trennzeichen können Sie Readline eine Zeile zu einem Zeitpunkt zu lesen.

So in Zeile # 2 zu lesen beginnen, würden Sie die erste Zeile lesen und verwerfen und dann Linien bis Zeile # 5 lesen.

Nun, wenn der Inhalt nur Klartext, wie das ist, sollten Sie die Stream der Readline-Methode verwenden.

http://msdn.microsoft.com /en-us/library/system.io.streamreader.readline.aspx

-Oisin

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top