Ich habe eine Zeichenfolge in C # und möchte Text von einer bestimmten Zeile erhalten, sagen wir 65. Und wenn die Datei nicht so viele Zeilen hat, würde ich gerne "" bekommen. Wie geht das?
Schnell und einfach, vorausgesetzt, \ r \ n oder \ n ist Ihre Newline-Sequenz
%Vor% Sie könnten System.IO.StringReader
über Ihre Zeichenfolge verwenden. Dann könnten Sie ReadLine()
verwenden, bis Sie die gewünschte Zeile erreicht haben oder keinen String mehr haben.
Da alle Zeilen eine unterschiedliche Länge haben können, gibt es keine Verknüpfung, um direkt zu Zeile 65 zu springen.
Wenn du Split()
eine Zeichenkette duplizierst, verdoppelt sich auch der Speicherverbrauch.
Wenn Sie bereits eine String-Instanz haben, können Sie mit String.Split
jede Zeile aufteilen und prüfen, ob Zeile 65 verfügbar ist. Wenn ja, verwenden Sie sie.
Wenn der Inhalt in einer Datei ist, verwenden Sie File.ReadAllLines
, um ein Zeichenfolgen-Array zu erhalten, und führen Sie dann die gleiche Überprüfung durch, die zuvor erwähnt wurde. Dies funktioniert gut für kleine Dateien, wenn Ihre Datei groß ist, lesen Sie jeweils eine Zeile.
Abgesehen von der Tatsache, dass ich eine bestimmte Dateistruktur und Dateioperationen auf niedrigerer Ebene ausnutze, glaube ich nicht, dass es schneller geht, als 64 Zeilen zu lesen, zu verwerfen und dann die 65. Zeile zu lesen und zu behalten. Bei jedem Schritt können Sie leicht überprüfen, ob Sie die gesamte Datei gelesen haben.