2013-04-23 2 views
-6

нужна некоторая функция, которая вернет список с линиями txt-файла (например, от 10 строк до 25 строк). Любые решения? Все мои попытки встретились с провалом.Прочтите txt-файл из строки в строку в список?

+3

сообщение кода у вас есть поэтому мы можем видеть, что вы пытались сделать. – Stephen

ответ

4
// Retrieve 10 lines from Somefile.txt, starting from line 1 
string filePath = "C:\\Somefile.txt"; 
int startLine = 1; 
int lineCount = 10; 
var fileLines = System.IO.File.ReadAllLines(filePath) 
       .Skip((startLine-1)) 
       .Take(lineCount); 
7

Вы можете использовать LINQ и File.ReadLines который перебирает по линиям файлов (внутренне использует StreamReader):

List<string> lines = File.ReadLines(path).ToList(); 
5

Вы можете сделать:

List<string> fileLines = new List<string>(); 

using (var reader = new StreamReader(fileName)) 
{ 
    string line; 
    while ((line = r.ReadLine()) != null) 
    { 
     fileLines.Add(line); 
    } 
} 
0
List<string> lines = File.ReadLines().ToList(); 
for(int i = 0; i < lines.Count; i++){ 
if(i >= startline && i <= endline) LinesFromStartToEnd.Add(lines[i]);// same string list 
} 
0

Если файл не слишком велик, вы можете сделать это с помощью LINQ:

int start = 10; 
int end = 25;  
List<string> lines = File.ReadLines(path).Skip(start - 1).Take(end - start + 1).ToList(); 
+0

Файл имеет 1 миллион строк) – oczxn