Как указать пробелы при чтении из файла .txt - PullRequest
1 голос
/ 15 декабря 2011

У меня есть простой .txt файл с X, Y-значениями в нем.Это структурировано так:

-25.7754  35.87

-22.1233  32.16

-20.361   30.75 

и т. Д.

Я могу прочитать отдельные строки или весь текст до конца, с помощью objstream.ReadToEnd ();& objstream.ReadLine ().Но вот мой вопрос, как я могу указать, когда строка после первого значения заканчивается, чтобы я мог сохранить / проанализировать ее для обработки и продолжить чтение значения следующей строки?

Вот функция чтения, которую я имею до сих пор:)

StreamReader objStream = new StreamReader("C:blablabla\\Text.asc");
            textBox1.Text = objStream.ReadLine();

Заранее спасибо,

BC ++

Ответы [ 3 ]

7 голосов
/ 15 декабря 2011

Использование String.split ()

По запросу, пример:

string s = "there is a cat";
//
// Split string on spaces.
// ... This will separate all the words.
//
string[] words = s.Split(' ');
foreach (string word in words)
{
    Console.WriteLine(word);
}

Вывод:

there
is
a
cat
3 голосов
/ 15 декабря 2011

Посмотрите на string.Split методы:

var line1 = objStream.ReadLine();
var lineParts = line1.Split(" ".ToCharArray(), StringSplitOptions.RemoveEmptyEntries);
textBox1.Text = lineParts[0];
textBox2.Text = lineParts[1];

Обратите внимание на использование перегрузки, которая использует StringSplitOptions.RemoveEmptyEntries - это означает, что, если у вас есть несколько пробелов подряд, результат не будет содержать пустых записей.

1 голос
/ 15 декабря 2011

Если вы действительно имеете в виду пробел, а не пробел, то вы должны пойти по этому пути:

string line = "-25.7754  35.87";
string[] values = line.Split(new char[] { }, StringSplitOptions.RemoveEmptyEntries);

Отличие от других ответов в символе разделения.Если это не определено, то символами пробела считаются разделители.Другими словами, вы получите тот же результат для

string line = "-25.7754\t35.87"; // tab instead of spaces.

. У вас будет возможность разделить строки с фиксированной длиной или табуляцией, используя одинаковый код.

...