如何在从.txt文件中读取时指示空格

时间:2011-12-15 10:04:38

标签: c# winforms readfile

我有一个简单的.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 个答案:

答案 0 :(得分:7)

使用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

答案 1 :(得分:3)

查看string.Split方法:

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

注意使用StringSplitOptions.RemoveEmptyEntries的重载 - 意味着如果连续有多个空格,结果将不包含空条目。

答案 2 :(得分:1)

如果你真的是指白色空间而不是空间,那么你必须这样:

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

与分裂角色中的其他答案的区别。如果未定义,则假定空格字符为分隔符。换句话说,你会得到相同的结果

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

您可以灵活地使用相同的代码正确分割固定长度或制表符分隔线。