2 votes

Stocker les données dans des fichiers sources C# vs. XML etc... ?

Il s'agit d'une question en C#.

Je me demandais juste si quelqu'un avait essayé de stocker ses données (comme les fichiers de configuration par exemple) dans le fichier *.cs, au lieu de XML ?

Je déteste vraiment le XML. L'idée d'analyser une structure de type html chaque fois que l'on a besoin de données semble stupide.

Existe-t-il des alternatives légères (comme YAML) à XML ? Dans mon cas, j'ai besoin de stocker des données pour un niveau (de jeu), où il y a beaucoup d'objets différents, de types de terrain, etc... dans un fichier plat, pour pouvoir les lire plus tard.

Je suppose que je pourrais sérialiser mon Niveau mais je veux que le fichier de données soit éditable dans n'importe quel éditeur de texte, par exemple.

Toute aide serait la bienvenue, merci !

PS : En ce qui concerne les fichiers .cs, j'ai oublié de mentionner que je veux pouvoir créer (et sauvegarder) de nouveaux niveaux dans le jeu, via un éditeur.

1voto

orip Points 28225

Nous aimons JSON pour les fichiers de configuration - il est étonnamment polyvalent.

Il est facile à éditer à la main, facile à analyser et à générer (y compris de solides bibliothèques pour .NET - à la fois pour MS et pour des tiers), et il est très puissant - une sorte de XML avec de bons types de données de base.

0voto

Andy White Points 36586

Si vos données ne sont pas trop complexes ou hiérarchiques, vous pouvez les stocker dans un format de fichier de propriétés comme celui-ci :

level.name=My Level
level.mapfile=Map.txt

etc.

D'un autre côté, il est très facile de travailler avec XML en C# avec la sérialisation (ISerializable ou DataContract), vous n'avez pas à écrire de code d'analyse, le framework le fait pour vous. Éditer du XML dans un éditeur de texte ne peut pas être si mauvais !

Si vous êtes prêt à faire un petit compromis sur le XML, vous pouvez utiliser un Collection NomValeur pour contenir vos éléments de configuration. Vous pouvez ensuite le sérialiser en utilisant la sérialisation .NET intégrée. Le fichier sera XML, mais dans un format très simple et facile à éditer, et vous n'aurez pas à vous soucier de conversions/validations manuelles de types.

0voto

Je ne sais pas si vous en avez déjà entendu parler, mais vous devriez jeter un œil à ce truc YAML. C'est vraiment cool, avec its own homepage et tout.

0voto

daz-fuller Points 588

Le XML, même s'il est assez lourd, est souvent le meilleur choix pour stocker des données dans un fichier, et LINQ for XML facilite grandement la lecture et l'écriture de ces données.

Une autre option si vos données sont assez complexes est d'utiliser quelque chose comme SQLite, je l'ai déjà utilisé auparavant et pour un accès mono-utilisateur, c'est vraiment très rapide et facile à utiliser.

0voto

Waylon Flinn Points 8140

On dirait que vous voulez un format binaire qui peut être édité dans un éditeur de texte. Malheureusement (jusqu'à ce que tout le monde maîtrise un éditeur hexadécimal), il y a un compromis inévitable entre la vitesse et la facilité d'édition.

Étant donné qu'un format binaire est essentiellement un emballage très dense du plus petit ensemble d'octets qui codent votre état, il serait rapide et facile à analyser. Un format XML, en revanche, serait facile à modifier. Une solution possible est de créer les deux et de construire un programme simple qui les convertit. Vos utilisateurs expérimentés utiliseraient alors ce programme pour convertir vos niveaux en XML, les modifier et les reconvertir.

Si vous finissez par utiliser le XML dans ce scénario, je vous recommande d'utiliser plus d'un fichier Peut-être un par objet. Il semble que vous prévoyez d'avoir un monde complexe. Il est logique de le découper un peu.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X