检查.text文件中的每个字符

时间:2013-10-21 15:00:11

标签: c# arrays streamreader

我正在开发游戏引擎,但我在使用磁贴引擎时遇到了一些问题。

我想在文本文件中这样做,我首先有4行告诉地图的大小和地图的大小,然后是地图/数组本身,例如:

32
32
10
10
0000000000
0000000000
0000000000
0000000000
0000000000
0000000000
0000000000
0000000000
0000000000
0000000000

当文件被加载时(使用streamreader),它会遍历文件并检查特殊字符 - 例如:

switch(lineReader)
{
    case '#'
    {
        Solid solid = new Solid(Content.Load<Texture2D>("spr_Wall"), new Rectangle(0, 0, tileWidth, tile Height));
    }
}

我一直在尝试用互联网搜索2-3个月,但无论哪种方式我都在搜索谷歌,或者只是一个糟糕的程序员......

嗯,无论如何,我怎么能做出这样的事情呢?

1 个答案:

答案 0 :(得分:1)

如果文件格式正确(我的代码中没有错误检查)

private static void Main()
    {
        using (var reader = new StreamReader("filename"))
        {
            var tileSizeX = Convert.ToInt32(reader.ReadLine());
            var tileSizeY = Convert.ToInt32(reader.ReadLine());
            var mapSizeX = Convert.ToInt32(reader.ReadLine());
            var mapSizeY = Convert.ToInt32(reader.ReadLine());

            char[,] map = new char[mapSizeX, mapSizeY];

            for (var i = 0; i < mapSizeY; i++)
            {
                string line = reader.ReadLine();
                for (int j = 0; j < mapSizeX; j++)
                {
                    map[j, i] = line[j];
                }
            }

            for (int i = 0; i < mapSizeX; i++)
            {
                for (int j = 0; j < mapSizeY; j++)
                {
                    Console.Write(map[i, j]);
                }
                Console.WriteLine();
            }
        }
        Console.ReadLine();
    }