当我已经有另一个分隔符时,如何使StreamReader跳过一行
本文关键字:StreamReader 一行 何使 另一个 分隔符 | 更新日期: 2023-09-27 18:21:53
Okey。因此,我正在制作一个简单的脚本,从数组中生成块,几乎就像一个波浪形的2d游戏。但它并没有像我希望的那样预先成形,我知道为什么,但我还没有找到任何解决方案。如果可以的话,请帮我:)
因此,在这里,我用一个空格作为分隔符来运行StreamReader:
StreamReader reader = new StreamReader (@"blablabla'path'levelOneMap.txt");
string s = reader.ReadToEnd();
while(s != null)
{
char[] delimiter = {' '};
// Level holder is a string array, wish hold x, s or h.
levelHolder = s.Split(delimiter, System.StringSplitOptions.RemoveEmptyEntries);
s = reader.ReadLine();
}
他正在阅读的文件看起来像这样:
x x
x s x
x h x
等等,如果x是,它会产生一个区块。s是起始块,h只是地上的一个洞。
我做了一堆debug.logs,把x、s和h改成了1 2 3 4……看看发生了什么。原来第一个12可以,但levelHolder[2]同时包含3和4。如何使此脚本理解它应该同时跳过"answers"''n"?
一旦调用ReadToEnd()
,您就可以将整个文件放在一个变量中,并且流已经到达文件末尾。之后调用ReadLine()
不会有任何作用。这样你就可以去掉循环了。
然后添加您想要的任何分隔符,可能需要所有ASCII空白字符({ ' ', ''t', ''r', ''n', ''v' }
)。
如果您希望将所有块放置在一个levelHolder
数组中。如果希望每一行都在自己的数组中,则保留循环,并将初始ReadToEnd()
更改为另一个ReadLine()
。