Parser in C(Lua Datei)

sahili

Mitglied
Hallo,

ich muss eine Anwendung in C schreiben, die eine Lua datei parsen soll, die lua datei sieht ungefähr so aus:



UploadData = {
["intellect_mana"] = "5180",
["defensesParry_increasePercent"] = "0.00",
["item_finger2_id"] = "29285",
["pvp_rank"] = 0,
["item_legs_id"] = "24262",
["spirit_base"] = 150,
["Race"] = "Untoter",
["Bosskills"] = {
["Terestian Illhoof"] = 1,
["Prince Malchezaar"] = 1,
["The Lurker Below"] = 1,
["Nightbane"] = 1,
["Hydross the Unstable"] = 1,
["Netherspite"] = 1,
["Shade of Aran"] = 1,
["The Curator"] = 1,
["Gruul the Dragonkiller"] = 1,
["Magtheridon"] = 1,
},
["item_wrist"] = "Interface\\Icons\\INV_Bracer_07",
["item_shirt"] = "Interface\\Icons\\INV_Shirt_01",
["item_mainHand"] = "Interface\\Icons\\INV_Staff_06",
["rangedDamage_max"] = 312.0899963378906,
["item_waist_tooltip"] = "Gurt der Zerstörung--Seelengebunden--Taille--100 Rüstung--+18 Ausdauer--+13 Intelligenz--+9 Zauberschaden--+4 Kritische Zaubertrefferwertung und +5 Zauberschaden--Sockelbonus: +4 Ausdauer--Haltbarkeit 35 / 35--Benötigt Stufe 70--Anlegen: Erhöht kritische Zaubertrefferwertung um 20.--Anlegen: Erhöht durch Zauber und magische Effekte verursachten Schaden und Heilung um bis zu 39.--|cff00ff00{Hergestellt von Moktursk}|r--{Zum Sockeln Shift-Rechtsklick}--",
["resistances_fire"] = 33,
["max_mana"] = 8291,
["agility_armor"] = "74",
["Class"] = "Magier",
["defensesParry_percent"] = 0,
["XP"] = 132,
["ArenaTeam"] = {
{
["bgR"] = 2927,
["borderB"] = 0.2941176470588235,
["weekPlayed"] = 0,
["emblemG"] = 0.5450980392156862,
["borderR"] = 0.5529411764705883,
["bgB"] = 0.1254901960784314,
["playerPlayed"] = 0,
["seasonWins"] = 0,
["teamRating"] = 1500,
["Members"] = {
{
["weekPlayed"] = 0,
["class"] = "Magier",
["weekWin"] = 0,
["seasonPlayed"] = 0,
["online"] = 1,
["name"] = "Aninra",
["level"] = 70,
["seasonWin"] = 0,
["rank"] = 1,
}, -- [1]
{
["seasonPlayed"] = 0,
["seasonWin"] = 0,
["name"] = "Blindeyez",
["class"] = "Krieger",
["weekPlayed"] = 0,
["level"] = 70,
["weekWin"] = 0,
["rank"] = 0,
}, -- [2]
{
["seasonPlayed"] = 0,
["seasonWin"] = 0,
["name"] = "Kadnezar",
["class"] = "Hexenmeister",
["weekPlayed"] = 0,
["level"] = 70,
["weekWin"] = 0,
["rank"] = 1,
}, -- [3]
{
["seasonPlayed"] = 0,
["seasonWin"] = 0,
["name"] = "Smub",
["class"] = "Druide",
["weekPlayed"] = 0,
["level"] = 70,
["weekWin"] = 0,
["rank"] = 1,
}, -- [4]
},
["weekWins"] = 0,
["teamRank"] = 0,
["seasonPlayed"] = 0,
["borderG"] = 5,
["teamName"] = "Schmackes",
["bgG"] = 0.5882352941176471,
["emblemR"] = 2,
["emblem"] = 0.2352941176470588,
["emblemB"] = 0.5607843137254902,
["teamSize"] = 3,
}, -- [1]
{
["bgR"] = 804,
["borderB"] = 0.9450980392156863,
["weekPlayed"] = 0,
["emblemG"] = 0.8509803921568627,
["borderR"] = 0.8627450980392157,
["bgB"] = 0,
["playerPlayed"] = 0,
["seasonWins"] = 7,
["teamRating"] = 1534,
["Members"] = {
{
["weekPlayed"] = 0,
["class"] = "Magier",
["weekWin"] = 0,
["seasonPlayed"] = 0,
["online"] = 1,
["name"] = "Aninra",
["level"] = 70,
["seasonWin"] = 0,
["rank"] = 1,
}, -- [1]
{
["seasonPlayed"] = 0,
["seasonWin"] = 0,
["name"] = "Badmole",
["class"] = "Priester",
["weekPlayed"] = 0,
["level"] = 70,
["weekWin"] = 0,
["rank"] = 1,
}, -- [2]
{
["seasonPlayed"] = 12,
["seasonWin"] = 7,
["name"] = "Bandits",
["class"] = "Schurke",
["weekPlayed"] = 0,
["level"] = 70,
["weekWin"] = 0,
["rank"] = 1,
}, -- [3]
{
["seasonPlayed"] = 12,
["seasonWin"] = 7,
["name"] = "Capslock",
["class"] = "Hexenmeister",
["weekPlayed"] = 0,
["level"] = 70,
["weekWin"] = 0,
["rank"] = 0,
}, -- [4]
{
["seasonPlayed"] = 0,
["seasonWin"] = 0,
["name"] = "Euryale",
["class"] = "Magier",
["weekPlayed"] = 0,
["level"] = 70,
["weekWin"] = 0,
["rank"] = 1,
}, -- [5]
{
["weekPlayed"] = 0,
["class"] = "Jäger",
["weekWin"] = 0,
["seasonPlayed"] = 0,
["online"] = 1,
["name"] = "Janos",
["level"] = 70,
["seasonWin"] = 0,
["rank"] = 1,
}, -- [6]
{
["weekPlayed"] = 0,
["class"] = "Priester",
["weekWin"] = 0,
["seasonPlayed"] = 12,
["online"] = 1,
["name"] = "Moktursk",
["level"] = 70,
["seasonWin"] = 7,
["rank"] = 1,
}, -- [7]
{
["seasonPlayed"] = 12,
["seasonWin"] = 7,
["name"] = "Nobleman",
["class"] = "Paladin",
["weekPlayed"] = 0,
["level"] = 70,
["weekWin"] = 0,
["rank"] = 1,
}, -- [8]
{
["seasonPlayed"] = 12,
["seasonWin"] = 7,
["name"] = "Quathul",
["class"] = "Krieger",
["weekPlayed"] = 0,
["level"] = 70,
["weekWin"] = 0,
["rank"] = 1,
}, -- [9]
.
.
.
.
etc

Meine Frage ist welchen datenstruktur(Baum) ist hier am besten geeignet und dazu bitte eine Erklärung wie man die Elementen darin Einfügt.ein Element besteht aus Index und Value, das ist was immer zwischen Anführungstzeichen ist!

Danke schom im voraus.
 
Zurück