Tabellen (Open Office / Excel) auslesen?

  • GM 7

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Tabellen (Open Office / Excel) auslesen?

    Ich hatte jetzt die Suchfunktion benutzt und nix wirklich Gescheites gefunden (Gesucht nach simpel "Tabelle" in Tuts, Gelöste Fragen und Technische Hilfe).
    Hab auch gestern schon ca. 10 Stunden durch einige Sachen durchgeblättert.

    Entweder ich bin blind oder es gibt nix zu meinem Thema ?(

    Naja nun zum Punkt.

    Ich wollte mal fragen, ob und evtl. wie man den GM Microsoft Excel bzw Open Office Tabellen-Dokumente auslesen kann.

    Mir wäre auch jedes vergleichbare Tabellenprogramm recht, diese fielen mir nur direkt ein.

    Was ich da bräuchte wäre das Auslesen einzelner Segmente.

    Die Idee kam mir, nachdem ich nach einfachen Möglichkeiten gesucht hatte um Variablen zu verwalten und
    ich dachte, dass Tabellen am übersichtlichsten sind und, da Variablen im Spiel nach dieser Tabelle gesetzt werden, es ermöglichen sachen ausserhalb des Spiels zu modifizieren.

    Wer sich nun garnichts drunter vorstellen kann, ABER eventuell Diablo2 kennt und sich dort vllt. mal mit
    dem Modding beschäftigt hat, der dürfte spätestens jetzt eine Idee haben was ich meine.

    Ein Denkanstoß wäre für mich auch schon ein Anfang.

    Danke im Voraus.

    :EDIT: Ein wenig näher erläutert. (Hoffe es ist verständlicher und man weiss nun, was ich meine)

    ~Schattenphoenix
    So far, Schattenphoenix~
    _____________________________________________________________________________
    "Who needs a stairway to heaven...
    If there is an elevator to hell... ?
    "
    - Vergessen
    "Auch ein perfektes Chaos ist etwas vollkommenes."
    - Jean Genet

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Schattenphoenix ()

  • Direkt Hilfe zu deinem Problem kann ich dir da nicht bieten, aber warum benutzt du nicht einfach INI-Dateien?
    █████ ██ █ ████ everything ███ █████ is █████ ████ ████ fine ████ ███ █ ██████ love.
    █████ ███████ ███ your █████ ████ government.
  • Der GM selbst unterstützt diese Funktion nicht, es gibt jedoch eine andere Möglichkeit. Bzw eigentlich gibt es zwei. Zum einen glaube ich, einmal eine DLL dazu gesehen zu haben, ist aber schon zwei Jahre her, kann sein dass diese die aktuellen Tabellen-Versionen garnicht unterstützt. Für die zweite muss ich etwas weiter ausholen. Es gibt unter Windows eine Technik namens ODBC. Ich weiß jetzt nicht, wofür diese Abkürzung im einzelnen steht, aber sie dient der Einbindung von verschiedenen Datenbanken in Windows-Anwendungen mit einem einzigen Protokoll. Es gibt mehrere DLLs, die den Zugriff auf ODBC mit dem GM ermöglichen, da musst du einfach mal GMC durchsuchen. Der Trick ist, dass sich, wenn Excel installiert ist, Tabellen als Datenbanken in ODBC verwenden lassen.

    Ich weiß nicht, ob das jetzt hilfreich war. Falls du dazu noch genauere Fragen hast sag Bescheid oder meld dich direkt bei mir (PN, ICQ, etc.).

    Übrigens gibt es auch eine API von OpenOffice, ich denke aber nicht, dass bereits eine Wrapper-DLL für den GM existiert. Wenn du dich mit anderen Programmiersprachen auskennst kannst du dich ja mal daran versuchen...
  • Wenn es dir wirklich nur um einfache Tabellen geht, empfehle ich CSV (Comma Seperated Values). Da speicherst du die Tabellenwerte einfach durch ein Trennzeichen getrennt in eine textdatei. Von Excel Dateien würde ich dir abraten, da diese (außer ind er neusten Version) ein Binärformat haben. Um das auszulesen, muss man wirklich das Format genau kennen, und in der Datei stehen viel zu viele Dinge drin, die du später gar nicht brauchst (Overhead), zum Beispiel bringen dir die Textformatierungen gar nichts, wenn du sie nicht verwendest. Bei OpenOffice ist das schon etwas einfacher, da das odf Format auf XML basiert. Mit einem XML Parser und dem entprechenden Wissen könnte man das also umsetzen, aber auch dieses Format ist für deine Zwecke also ungeeignet. Bleiben also noch csv und ini. ini kann der GM schon selber, und csv kann man mit GML recht leicht parsen. Diese beiden sind also am besten geeignet.
    “Computers are good at following instructions, but not at reading your mind.” (Donald Knuth)

    Ich schreibe mit Neo.
  • Die Tabellen in eine .txt umwandeln hatte ich auch schon überlegt, so macht es Blizzard mit Diablo2 auch.

    Die .txt files lassen sich mit OpenOffice und Excel in einer Tabelle öffnen und hinterher wieder als .txt wieder speichern.
    Hierbei benutzt z.B. OpenOffice (Excel hab ich derzeit nich hier) die möglichkeit die verschiedenen Spalten mit diversen Zeichen zu trennen.
    Standard ist bei OpenOffice Calc meines Wissens nach ein "Anführungszeichen" also ein > " <.
    Als Ausweichmöglichkeit gibt es noch ein > ' < also ein Apostroph (hoffe es ist richtig lol) oder einfach ein Tabulator Abstand.

    Frage ist damit, wie man eine .Txt Datei dann auswertet, da man ja die Trennzeichen definieren müsste.

    Als kleine Bemerkung, ich kann keine Programmiersprache, habe nur ein grundlegendes Verständnis wie es funktioniert, bin allerdings gewillt auch was dafür zu tun die Möglichkeiten zu nutzen die euch einfallen und würde auch dementsprechend evtl anfangen eine Sprache zu lernen, bzw mich ein wenig einzuarbeiten, das dürfte nicht das Problem sein ^^.

    Falls euch Lösungen einfallen die gut funktionieren, ohne Unmengen an Speicher und Leistung zu fressen, wäre es auch nett, wenn ihr Quellen anhängen würdet wo ich das Wissen finde, das zur Ausführung benötigt wird.

    Nochmals, danke im Voraus~

    So far, Schattenphoenix~

    :EDIT:

    Um nochmal auf die vorhergehenden Antworten näher einzugehen:

    @ mauge: Wenn du nicht helfen kannst, ist ok, danke dennoch für den Versuch ;D

    @ T-Moe: Kannst du eventuell ein wenig näher erläutern auf welchem Weg die Tabellen als Datenbank genutzt werden?
    Ist es dann so, dass ich im GM die einzelnen Zellen als Variablen benutzen kann?
    Also so, dass wenn ich in einer Rechnung z.B. D2 als Variable benutze, dass der Wert dann aus der Tabelle
    benutzt wird?

    Sorry wenn es undeutlich rüber kommt, ich hab grad ein wenig Artikulationsprobleme haha =D

    @ Bottleneck: Das was ich oben geschrieben hab, führt in etwa auf das was du als CSV definierst zurück, seh ich das
    richtig?
    Wie ist es dann mit Dezimalzahlen? Die werden in GML generell sowieso mit .x geschrieben oder?
    Vielleicht kann man im Open Office das Trennzeichen als Komma einstellen, werd ich nachher mal
    schauen.

    :EDIT:

    Zum Thema .ini Datein, gibt es ein Programm, was Tabellen in eine .ini Datei umschreiben bzw. konvertieren?
    So wie ich das sehe, kann eine .ini pro Informationsblock nur jeweils 3 Variablen aufnehmen, stimmt das oder kann man sie unendlich erweitern?
    gamemaker.info/de/manual/410_03_ini
    So far, Schattenphoenix~
    _____________________________________________________________________________
    "Who needs a stairway to heaven...
    If there is an elevator to hell... ?
    "
    - Vergessen
    "Auch ein perfektes Chaos ist etwas vollkommenes."
    - Jean Genet

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von Schattenphoenix ()

  • Ich hab wirklich keinen Schimmer was du jetzt willst (also ich hab die Fragestellung nicht wirklich verstanden).
    Aber falls du wissen willst, wie man Strings mit Trennzeichen wieder trennen will, kannste dir ja mal den Codiercode von mir angucken (Name passt nicht, was solls :D )
    Du kannst so alle Werte auslesen und z.B. in einer Map speichern.
  • Es geht drum, eine Tabelle als Informationsquelle zu benutzen ähnlich der .ini Datein, nur das Tabellen meiner Meinung nach ein ganzes Stückchen übersichtlicher sind.

    Ich würde gerne näheres über die Form von .ini datein erfahren, wenn da jemand vielleicht einen kleinen Satz zu schreiben könnte.

    Meine Frage zu den .ini Datein ist im Endeffekt, ob eine Sektion in der .ini unendlich viele Variablen fassen kann.
    Dann wäre es vergleichbar mit einer Tabelle, da eine Sektion in der .ini einer Zeile entsprechen könnte.

    Nur von dem Beispiel auf Yoyogames sieht es so aus als wenn jede Sektion nur jeweils 2 Zahlenvariablen beinhalten kann und einen String.
    So far, Schattenphoenix~
    _____________________________________________________________________________
    "Who needs a stairway to heaven...
    If there is an elevator to hell... ?
    "
    - Vergessen
    "Auch ein perfektes Chaos ist etwas vollkommenes."
    - Jean Genet
  • Also ich bin da noch an keine Grenze gestoßen und in der GM Hilfe steht auch nichts davon, das sollte also funktionieren.

    Als copyboy Maps erwähnt hat, bin ich noch auf eine andere Idee gekommen: Der GM7 kann Datenstrukturen in eine Datei speichern und lesen. Dabei gibts die ds_grid, welches einer Tabelle entspricht mit Zeilen und Spalten. Wenn du das einfach da reinspeicherst, kannst du mit ds_grid_write() und ds_grid_read() es in eine Datei speichern und wieder auslesen. Dies geht so weit ich weiß aber nur mit GM7 Pro, kannst du ja mal versuchen.
    “Computers are good at following instructions, but not at reading your mind.” (Donald Knuth)

    Ich schreibe mit Neo.
  • Wenn das so ist, werd ich mir die Pro Version demnächst holen, einige Funktionen sind meiner Meinung nach eh fast essentiell.

    So far, danke für alle Antworten, ich werde mich mit nem Freund zusammensetzen und wir werden die Tage mal schauen, wie wir das hinkriegen, wenn euch noch andere Sachen einfallen, immer her, evtl auch als PN.

    Wir haben mit dem Projekt noch nicht wirklich angefangen, da bisher noch ne Menge Theorie dahintersteckt.
    Wir pixeln wie die Weltmeister und überlegen uns was eigentlich im Spiel vorkommen soll.


    Wenn ich die Möglichkeit hab die Sachen zu testen, meld ich mich wieder.

    So far, Schattenphoenix~
    So far, Schattenphoenix~
    _____________________________________________________________________________
    "Who needs a stairway to heaven...
    If there is an elevator to hell... ?
    "
    - Vergessen
    "Auch ein perfektes Chaos ist etwas vollkommenes."
    - Jean Genet
  • INI-Dateien sind nicht auf 3 Variablen pro Bereich begrenzt. Bisher bin auch ich da an noch keine Grenzen gestoßen und je nachdem, wieviele Variablen du übersichtlich speichern musst/willst, solltest du dich entscheiden, ob du es nun lieber auf die einfachere Art (INI) oder eben übersichtlicher (Tabelle) haben willst. Du kannst mit OpenOffice z.B. auch als HTML speichern. Diese Datei lässt sich dann ohne die Nutzung einer DLL auslesen.
    █████ ██ █ ████ everything ███ █████ is █████ ████ ████ fine ████ ███ █ ██████ love.
    █████ ███████ ███ your █████ ████ government.
  • HTML wäre auch ne nette Idee.

    Danke Leute, ich glaub das hilft schon sehr.

    Grade die HTML und CSV klingen recht übersichtlich.
    So far, Schattenphoenix~
    _____________________________________________________________________________
    "Who needs a stairway to heaven...
    If there is an elevator to hell... ?
    "
    - Vergessen
    "Auch ein perfektes Chaos ist etwas vollkommenes."
    - Jean Genet
  • Jap, Doppelpost.

    Ich hatte mich die Tage umgeschaut aber nichts gefunden.

    Wollte fragen, ob ich einen Verweis zum benutzen von HTML im GM kriege?

    Die SuFu hatte nich sonderlich viel ergeben, wenn ich HTML eingebe kommt nichts sinnvolles und wenn ich PHP eingebe kommt garnichts.

    Übrigens die SuFu sucht immer nur in dem Foren-Bereich in dem man sich befindet, sehr irreführend ;)
    Nur sone Randinformation

    Danke im Voraus
    So far, Schattenphoenix~
    _____________________________________________________________________________
    "Who needs a stairway to heaven...
    If there is an elevator to hell... ?
    "
    - Vergessen
    "Auch ein perfektes Chaos ist etwas vollkommenes."
    - Jean Genet
  • Benutzer online 1

    1 Besucher