Werte aus einer .yml Datei lesen

Lukas97

Mitglied
Hallo,

zu allererst, ich bin neu hier im Forum (habe 2 Stunden nach einen Java-Forum gesucht).
Ich bin nicht relativ neu, ich Programmiere zurzeit nur mit GUIs.
Zurzeit Arbeite ich an einem kleinen Programm, welches Chancen etc für "World of Tanks" ausrechnet, also 1 vs 1 sozusagen. Dazu muss ich alle Werte der ca. 120 Panzer haben, und wieder ändern können, wenn ein Update erscheint. Diese Werte wären:
-Schaden
-Durchschlagskraft
-Panzerung
-Schüsse/Minute (Das muss float sein, weil manche (siehe IS3, 3,5 - 4,5x in der Minute schießt)

Ich habe mir schon irgendwie sowas ausgedacht wie:
Java:
public getDamage(){
   return Tanks.yml.IS3.Schaden;
}
Wie stelle ich des nun an? Das Programm soll später eine .jar werden.
Danke für jede Hilfe.
 
Kommt drauf an was in der yml drinnen steht. Ist das ein klartext format? Kannst du das mit notepad öffnen?

Dann Datenstruktur Modellieren, Datei einlesen, Strutkur befüllen, Verwenden...
 
Jo. Das könnte man parsen.

Hast du schon die Werte eingelesen? Oder fragst du, wie man aus einer Datei lesen kann?
 
YAML ist eine mischung aus Properties und XML (wobei der XML-teil hier wohl nur die mögliche baumstruktur wäre) ...
ergo muss man das ganze auch so parsen ...
einzelne sub-bäume werden durch einrückung mit label definiert ...

um das ganze also sinnvoll zu parsen müsste man erstmal das file komplett einlesen (hier dürfte es mit BufferedReader.readLine() getan sein) und dann im nachhinein die erhaltene ArrayList weiter untersuchen ...
dazu würde ich erstmal in jeder zeile gucken : name:wert-paar oder block-label ...
wenn name:wert-paar erstmal ignorieren ....
wenn block-label weiter bis zum ende des blocks arbeiten ... wie weit man hier mit whitespaces und regex liegt am source-file und ob dieses dem YAML-standard entspricht
wenn man dann den block in einer sub-liste hat mit dieser von vorne beginnen .. so lange bis man den "tiefsten punkt" gefunden hat ...

so zerlegt man schritt für schritt das file in einzelen sub-listen die dann am ende nur noch name:wert-paare enthalten ..
das ganze kann man dann in einer Map oder einem Set sinnvoll und strukturiert wieder zusammen stecken ...


wenn mans selbst basteln will für einen anfänger vielleicht etwas schwierig wenn man nicht mal weis wie man generell daten einliest ... aber es gibt ja für viele sprachen bereits fertige parser ..


btw : ich hab jetzt mal einiges der YAML-spec weggelassen wie listen und datentypen ... denn ich glaube das würde jetzt etwas zu weit führen ...
 

Zurück
Oben