Pregunta

Estoy construyendo un juego en Visual Studio 2008 y con el fin de construir niveles, voy a tener dos tipos de archivos (más de lo que realmente pero estos dos son los únicos importantes a mi pregunta) Necesito a analizar. Uno va a dictar el contenido de un nivel y se verá algo como esto:

LevelName = "Nivel de ejemplo"

Object1Type = "CustomObject"

Object1File = "WideFloor_DF"

Object1Position = 600600

Object2Type = "Circle"

Object2Position = 550, 500

Object2Mass = 5

etc.

El otro dictará las propiedades de los objetos personalizados, y algo parecido a esto:

Nombre = "Ancho del piso"

Masa = 1

GeometryMap = "WideFloor_GM"

isStatic = true

etc.

No estoy muy familiarizado con expresiones regulares (es decir: no me gusta porque el aspecto demasiado como ruido en la línea de comprender con facilidad)? Y me preguntaba si hay un método más fácil de usar toneladas de expresiones regulares

editar: Yo sabía que había olvidado algo! Realmente odio archivos XML, así que realmente preferiría no utilizarlos (waaaaaaaay demasiado prolijo para mí). EDIT 2: me gusta el formato que he llegado con y prefiere no cambiar

.
¿Fue útil?

Solución

¿Qué acerca del uso de archivos XML? Puede leer y escribir fácilmente usando XMLReader y XMLWriter objetos, y usted no tendrá que lidiar con expresiones regulares en absoluto.

<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>     

Otros consejos

Si va a tener sus archivos en formato legible por humanos de todos modos, ¿por qué no utilizar XML?

Si usted tiene control sobre el formato de archivo que puede ser que intente algo con un analizador existente, como XML o INI archivos, los cuales tienen programas de análisis en .NET.

Si se venden en el formato anterior, puede utilizar una herramienta como Lex para generar su analizador para usted.

Un enfoque alternativo podría ser la de definir una clase que tiene propiedades / colecciones para contener todos estos datos de configuración, y que sea [Serializable]. A continuación, puede rellenar a cabo una configuración de ejemplo, serializarlo a cabo en un archivo, y entonces usted tiene un archivo de configuración XML completo que se puede editar manualmente. Cuando esté listo para usar la configuración, simplemente deserializar el archivo XML de nuevo en el objeto de configuración de la aplicación.

Si usted insiste en absoluto sobre el uso de ese formato de archivo, se puede construir un objeto que lee el archivo línea por línea, tirando cosas desde el lado izquierdo de la '=' y ponerla en un diccionario como la clave y todo a la derecho de la '=' como valor.

Sin embargo, debo repetir las respuestas anteriores que dicen que el uso de un documento XML, junto con un objeto XMLDocument. ¿Has mirado en LINQ to XML?

bien, si he entendido su pregunta desea una forma de estructurar el contenido de los archivos para que el análisis sea mucho más fácil para usted, XML es una buena opción para eso, y XSD también para describir el contenido de su xml archivos, LINQ to XML harán que sea muy bueno para leerlo desde C #.

Si utiliza XML puede deserialise los archivos directamente en un objeto de manera que no es necesario analizarlo en absoluto.

¿Por qué no binaria serializar los objetos.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top