将文本文件按字符拆分为多个部分

时间:2015-01-31 16:35:16

标签: vb.net winforms text-files streamreader

如果已经有这个问题的答案我提前道歉;如果是这样,请将它链接起来(我看过了,顺便说一句!我只是找不到与我的具体例子相关的任何内容):)

我有一个文本(.txt)文件,其中包含1.10.100.0.200形式的数据,其中1,10,100,0和200是存储游戏地图地形布局的数字。此文件有多行1.10.100.0.200,其中每一行代表地图中的一个地形项。

以下是我想知道的事情:

  • 如何找出有多少行,所以我知道在阅读地图文件时要创建多少条地形?

  • 我应该使用什么方法来获得1,10,100,0和200中的每一个:

E.g。当我在运行时将文件转换为地图地形时,我可能会使用terrainitem1.Location = New Point(x, y)terrainitem1.Size = New Size(p, q)命令,其中xyp和{{ 1}}是与地形的位置或大小相关的整数或双精度。然后,我会在1,10,100,0和200中找到qx等,如果说y等于1,x到10并且等等?

如果不清楚,我很抱歉,请问我,我会尝试解释。

N.B。我正在使用VB.NET WinForms

1 个答案:

答案 0 :(得分:0)

如果不打开文件并阅读其内容,就无法知道文件有多少行。

你没有表明你对此有多远。你知道如何打开文件吗?

这里有一些基本代码可以做你想要的。 (对不起,这是C#,但VB中的想法是一样的。)

string line;

using (TextReader reader = File.OpenText(@"C:\filename.txt"))
{
    // Read each line from the file (until null returned)
    while ((line = myTextReader.ReadLine()) != null)
    {
        // Get each number in line (as string)
        string[] values = line.Split(new[] { '.' }, StringSplitOptions.RemoveEmptyEntries);
        // Convert each number to integer
        id = int.Parse(values[0]);
        height = int.Parse(values[1]);
        width = int.Parse(values[2]);
        x = int.Parse(values[3]);
        y = int.Parse(values[4]);
    }
}