Heim >Backend-Entwicklung >C++ >Wie kann ich bestimmte Zeilen aus einer großen Textdatei effizient lesen, ohne String-Arrays zu verwenden?
Zeilenweises selektives Lesen großer Textdateien
Frage:
Wie lese und speichere ich bestimmte Zeilen aus einer großen Textdatei, ohne ein String-Array zu verwenden?
Hintergrund:
Die bereitgestellte Textdatei hat ein strukturiertes Format: Die ersten 25 Zeilen enthalten die Informationen, gefolgt von einer variablen Anzahl von Zeilen (die Anzahl wird durch den Wert von Zeile 17 bestimmt). Das Ziel besteht darin, die ersten 25 Zeilen aus der Datei als unabhängige Werte zu extrahieren und zu speichern und die nachfolgenden Zeilen als Array zu speichern.
Lösung:
.NET 4.0-Methode:
Bei Verwendung von .NET 4.0 oder höher können ReadLines
Methoden direkt auf Zeilen zugreifen. Um Zeile 15 zu lesen:
<code class="language-csharp">string line = File.ReadLines(FileName).Skip(14).Take(1).First();</code>
Allgemeine Methode:
Für frühere .NET-Versionen oder wenn sich das sequentielle Lesen von Zeilen nicht vermeiden lässt:
<code class="language-csharp">string GetLine(string fileName, int line) { using (var sr = new StreamReader(fileName)) { for (int i = 1; i <= line; i++) { if (sr.ReadLine() == null) return null; // 处理文件结尾 if (i == line) return sr.ReadLine(); } return null; } }</code>
Diese Methode liest alle Zeilen vor der Zielzeile.
Hinweis:
Normalerweise kann nicht davon ausgegangen werden, dass die ersten n Zeilen gelöscht werden können, ohne die Datei erneut zu lesen und zu schreiben. Die hier bereitgestellte Lösung erfordert jedoch nicht das Löschen von Zeilen.
Das obige ist der detaillierte Inhalt vonWie kann ich bestimmte Zeilen aus einer großen Textdatei effizient lesen, ohne String-Arrays zu verwenden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!