我建立一个游戏在Visual Studio 2008,并以建设水平,我将有两种类型的文件(比实际多,但是这两个都是唯一的,以我的问题很重要)我需要解析。一个将决定一个级别的内容,将是这个样子:

LevelName = “样本水平”

Object1Type = “CustomObject”

Object1File = “WideFloor_DF”

Object1Position = 600600

Object2Type = “圈”

Object2Position = 550,500

Object2Mass = 5

另外,将决定对自定义对象的属性,并且是这个样子:

名称= “宽地板”

质量= 1

GeometryMap = “WideFloor_GM”

IsStatic =真

我不是很熟悉的正则表达式(读:我不喜欢他们,因为外观太像线路噪声很容易理解)?我想知道是否有比使用正则表达式万吨的更简单的方法

编辑:我知道我忘带了什么东西!我真的很讨厌的XML文件,所以我真的不喜欢使用它们(waaaaaaaay太冗长对我来说)。 编辑2:我喜欢的格式我想出了,宁愿不改变

有帮助吗?

解决方案

有关使用XML文件是什么?你可以阅读和使用的XMLReader和XMLWriter的对象他们很容易写,你就不必在所有的处理正则表达式。

<Level name="Sample Level">
   <Object type="CustomObject" file="WideFloor_DF" positionX="600" positionY="600" />
   <Object type="Circle" file="WideFloor_DF" positionX="500" positionY="500" mass="5" />
</Level>     

其他提示

如果你要在人类可读的格式文件,无论如何,为什么不使用XML?

如果您在文件格式控制,你可以尝试一些与现有的解析器,像XML或INI文件,两者都具有解析器.NET。

如果你在上面的格式出售,你可以使用像的莱克斯来生成解析器你。

一个替代方法可能是定义具有属性/集合来容纳所有这些配置数据的一类,并使其[序列化]。然后,您可以填充了一个示例配置,序列化到一个文件,然后你有,你可以手动编辑一个完整的XML配置文件。当你准备使用的配置,只是反序列化XML文件放回在您的应用程序的配置对象。

如果你绝对坚持使用的文件格式,你可以建立一个逐行读取文件中的行,从的“=”左边拉的东西,并把它变成一个字典作为重点对象,一切的右边的“=”作为值的

然而,我必须呼应上述答案即说成与XMLDocument对象沿着使用的XML文档。你看着的LINQ to XML?

嗯,如果我理解你的问题,你想一个方法来组织文件的内容,这样的解析会这么多,你更容易,XML是一个不错的选择,XSD也用于描述你的XML内容文件的LINQ to XML将使它很好地从C#阅读。

如果您使用XML,你可以直接将文件deserialise成一个对象,这样你就不需要在所有解析它。

为什么不二进制序列化你的对象。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top