2008-09-17 5 views
2

Zum Beispiel gerade jetzt habe ich eine Roll-my-own-Lösung, die Datendateien verwendet, die Blöcke wie umfassen:Vorschläge für die menschliche bearbeitbare Datendateiformat/Parsing-Bibliothek

PlayerCharacter Fighter 
    Hitpoints 25 
    Strength 10 
    StartPosition (0, 0, 0) 
    Art 
    Model BigBuffGuy 
    Footprint LargeFootprint 
    end 
    InventoryItem Sword 
    InventoryItem Shield 
    InventoryItem HealthPotion 
end 
  • menschliche editierbar (w/minimale Junk-Zeichen, ideal)
  • resistent gegen Fehler (weniger 'wow ich kann nichts nützliches mehr' Stilfehler analysieren, und damit habe ich alle Daten im Rest der Datei verloren) - aber immer noch in der Lage zu identifizieren und melden Sie sie natürlich. Mein Beispiel der einzige vollständige Fehlerfall ist das Ende.
  • verschachtelte Struktur Stil Daten
  • Array/Liste Stildaten
  • anpassbare Grundlage Typen
  • schnell

Sind alle bekannten Lösungen gibt, die/erfüllen übersteigen diese Anforderungen?

Antwort

6

Yaml ist eine gute Lösung und sehr nah an dem, was Sie haben. Suche danach.

1

Ich zweite der YAML Vorschlag. Es ist extrem einfach zu bearbeiten, sehr fehlerverzeihend und weit verbreitet (besonders in den dynamischen Sprachen).

1

Ich würde sagen, die am häufigsten verwendeten Optionen sind:

  1. JSON (offical site) - sehr flexibel, wenn die Interpunktion ein wenig für die Menschen zu
  2. gewöhnen ergreifen können, um
  3. INI - super einfach zu bedienen , aber etwas begrenzt in Datentypen
  4. XML - ziemlich flexibel, allgemein, aber viel zu ausführlich manchmal
0

Sie könnten tr y JSON verfügbar unter: http://www.json.org/

Es war ursprünglich für Javascript und Web-Nutzung konzipiert. Aber es ist ziemlich sauber und wird in vielen Sprachen unterstützt.

0

Lua wurde entwickelt, um eine Programmiersprache zu sein, in der Sie die Syntax auch leicht als Auszeichnungssprache verwenden können, so dass Sie Datendateien wie in Code einfügen. Viele Computerspiele verwenden es für ihre Skripts, wie beispielsweise World of Warcraft aufgrund seiner Geschwindigkeit und Benutzerfreundlichkeit. Wie auch immer, es wurde ursprünglich für die Energiebranche entwickelt und gewartet, daher gibt es einen ernsthaften Hintergrund.

Schema mit seinen S-Ausdrücken ist auch eine sehr schöne, aber anders aussehende Syntax für Daten. Schließlich haben Sie XML, das von den meisten Entwicklern auf Einstiegsebene profitiert. Sie können auch Ihren eigenen gut definierten und effizienten Parser mit einer netten Entwicklungsumgebung wie ANTLR erstellen.

-1

Ich würde vorschlagen, JSON.

  • Wie lesbar/bearbeitbar wie YAML
  • Wenn Sie für Web verwenden, dann passieren (eval sein kann) 'ed in JavaScript-Objekte
  • Wahrscheinlich als Quer Sprache als YAML