C # StreamReader сохранить в массив с разделителем - PullRequest
0 голосов
/ 03 января 2012

У меня есть текстовый файл с данными, разделенными табулятором. Что мне нужно в моем приложении C #, так это то, что я читаю одну строку из текстового файла и сохраняю их в массив, разделяя их в каждом \t. Затем я делаю то же самое со следующим рядом.

Мой код:

StreamReader sr = new StreamReader(dlg.FileName);
string s = sr.ReadLine();

Теперь я уже пытался записать строку в массив, но это не работает. Кто-нибудь один, как это сделать?

Ответы [ 8 ]

8 голосов
/ 03 января 2012

Используйте метод Split для создания массива из линии

string[] parts = s.Split('\t');

См. Документацию по Split () здесь

3 голосов
/ 03 января 2012
    foreach (string line in System.IO.File.ReadAllLines(dlg.FileName))
    {
        var myArray = line.Split('\t');
    }
2 голосов
/ 03 января 2012

s.Split('\t') разделит вашу строку на символ табуляции и создаст string[] соответствующей длины.

1 голос
/ 03 января 2012

Добавление вашего примера кода:

StreamReader sr = new StreamReader(dlg.FileName); 
string s = sr.ReadLine(); 
var items = s.Split('\t'); 

В конце, items содержит массив строк, которые представляют символы между вкладками.Вкладки не включены в массив.Массив может содержать пустые элементы (для случая двух последовательных вкладок).

0 голосов
/ 03 января 2012

Если файл содержит только одну строку, используйте:

string[] myArray = s.Split('\t');
0 голосов
/ 03 января 2012

В приведенном ниже примере items будет String[], содержащим каждую строку значений текста.Он будет перезаписываться при каждой итерации, поэтому вы захотите что-то с ним сделать внутри цикла.Сохраните его в большую коллекцию, запишите в файл и т. Д. *

StreamReader sr = new StreamReader(dlg.FileName);
while (sr.Peek() >= 0) {
    var line = sr.ReadLine();
    var items = line.Split(new Char[] { '\t' });
}
0 голосов
/ 03 января 2012
StreamReader reader = new StreamReader("input.txt");
string[] content = reader.ReadToEnd().Replace("\n","").Split('\t');

, если вы хотите сохранить новую строку, чем

string [] content = reader.ReadToEnd (). Split ('\ t');

0 голосов
/ 03 января 2012

Используйте метод String.Split(): http://msdn.microsoft.com/en-us/library/b873y76a.aspx

...