我在Visual Studio 2008中构建游戏,为了构建关卡,我将有两种类型的文件(实际上超过了这些,但这两个是唯一对我的问题重要的),我需要解析。一个将决定一个级别的内容,将是这个样子:C#中的文件解析#
LevelName = “样品等级”
Object1Type = “CustomObject”
Object1File = “WideFloor_DF”
Object1Position = 600600
Object2Type = “圆”
Object2Position = 550,500
Object2Mass = 5
等
另一个将决定对自定义对象的属性,并且是这个样子:
NAME = “宽幅地板”
质量= 1
GeometryMap =“WideFloor_GM”
IsStatic =真正
等
我不是很熟悉的正则表达式(读:我不喜欢他们,因为外观太像线路噪声很容易理解的),我想知道如果有一个更简单的方法比使用大量的正则表达式?
编辑:我知道我忘了一些东西!我真的很讨厌xml文件,所以我真的不想使用它们(waaaaaaaay对我来说太冗长)。 编辑2:我喜欢我提出的格式,并且不希望改变。
有趣的是,下面提供的示例Robert Harvey需要的字符数少于“格式”,因为它不需要重复“Object1”一遍又一遍。 – Talljoe 2009-06-11 05:51:24
那么,我们已经编写了一个完整的C#编译器,而不使用任何正则表达式。我想你可以解析一个比C#更简单的语言,而不使用正则表达式。解析语言是一个经过深入研究,常见的问题,因此有大量的文献可供参考。首先编写一个标记器,一个将字符流转换为标记流的设备。然后构建一个解析器,将令牌流转换为这些代表的任何数据结构的流。 – 2009-06-11 06:30:40
感谢您的想法,我可能会在某个时候做到这一点,但现在我会坚持使用XML。 – RCIX 2009-06-11 06:41:40