Lecture sélective par ligne de fichiers texte volumineux
Question :
Comment lire et stocker des lignes spécifiques à partir d'un gros fichier texte sans utiliser de tableau de chaînes ?
Contexte :
Le fichier texte fourni a un format structuré : les 25 premières lignes contiennent l'information, suivies d'un nombre variable de lignes (le nombre est déterminé par la valeur de la ligne 17). L'objectif est d'extraire et de stocker les 25 premières lignes du fichier en tant que valeurs indépendantes et de stocker les lignes suivantes sous forme de tableau.
Solution :
Méthode .NET 4.0 :
Si vous utilisez .NET 4.0 ou supérieur, les méthodes ReadLines
peuvent accéder directement aux lignes. Pour lire la ligne 15 :
<code class="language-csharp">string line = File.ReadLines(FileName).Skip(14).Take(1).First();</code>
Méthode générale :
Pour les versions antérieures de .NET ou si la lecture séquentielle des lignes ne peut être évitée :
<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>
Cette méthode lit toutes les lignes avant la ligne cible.
Remarque :
Normalement, on ne peut pas supposer que les n premières lignes peuvent être supprimées sans relire et réécrire le fichier. Cependant, la solution proposée ici ne nécessite pas la suppression des lignes.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!