DLL / GEX gmFile

    • GEX

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

    • DLL / GEX gmFile

      gmFile

      Hallo, liebe Community! Als Training für die Uni habe ich eine kleine DLL geschrieben, die für einige doch recht nützlich sein könnte. Die DLL / Extension beinhaltet nämlich binäre Dateifunktionen, die sowohl schneller, als auch ausgereifter als die GM-internen Binärfunktionen sind. Es werden von Byte bis Double und String verschiedene Datentypen unterstützt, um in eine Datei zu schreiben, bzw aus einer Datei zu lesen.

      Die Funktionen im Kurzüberblick (Genaue Erklärungen zu den Funktionen sind in der Hilfe der GEX enthalten)

      gmFile_open(dateiname, modus) Öffnet eine Datei im Lese- (0), Schreib- (1) oder Anhängmodus (2). Gibt die ID zurück.
      gmFile_close(ID) Schließt eine offene Datei

      gmFile_read_*(ID) Die read funktionen lesen Werte des jeweiligen Types aus der Datei aus.
      gmFile_write_*(ID, wert) Die write Funktionen schreiben Werte des jeweiligen Types in die Datei.

      gmFile_size(ID) Gibt die Dateigröße aus.
      gmFile_bytes_left(ID) Gibt aus, wie viele Bytes sich noch bis zum Ende der Datei befinden.
      gmFile_get_pos(ID) Gibt die aktuelle Schreib-/Leseposition aus.
      gmFile_set_pos(ID, pos) Setzt die aktuelle Schreib-/Leseposition.

      Ich habe die DLL sowie die DLL Scripts für Leute beigelegt, die lieber noch mit DLLs als Extensions arbeiten. Die Beispieldateien sind für den GM8 gedacht.
      Funktionsvorschläge sind natürlich erwünscht, sollte irgendjemand eine bestimmte Funktion vermissen ;)

      Download

      © 2008 by Teamgrill Productions

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

    • Update:
      Habe einen fiesen Fehler gefunden, der ab einer bestimmten anzahl an geschriebenen Daten aufgetreten ist. Durch Behebung des Fehlers sollte übrigens auch die Geschwindigkeit der DLL-funktionen gestiegen sein.

      © 2008 by Teamgrill Productions
    • Tolle Arbeit! genau sowas brauche ich bald =)
      Eine Idee hätte ich allerdings noch. Wie wärs mit einer gmFile_write_file( und gmFile_read_file( - Funktion?
      Also um eine ganze Datei binär in eine andere zu kopieren bzw wieder herausholen zu können. Wäre ganz praktisch um zum Beispiel Grafiken in Dateien einzubinden ohne um eher umständlich auf Archieven zurückgreifen zu müsssen.

      Willst du auf diese Drachen und -eier klicken?
      Sie werden sich freuen ;)
    • Das ließe sich schon machen. Du meinst, die Read-Funktion soll dann die Datei erstellen, oder deren Inhalt wiedergeben? Die Frage ist nur, wie ich das mit der Größe handhabe. Also dass genau die Größe der Datei ausgelesen wird. Wenn du darauf verzichten kannst, dass die Datei benutzbar ist wenn du mittels write eine Datei in eine andere leere Datei einfügst, würde ich einfach vor die eigentliche Datei einen Header schreiben der die Größe angibt.

      Priorität wird das ganze allerdings keine sonderlich hohe haben, da man das ja auch jetzt über den GM lösen kann, indem man einfach zwei Files aufmacht und den Inhalt des einen in das andere schreibt.

      © 2008 by Teamgrill Productions
    • MasterXY schrieb:


      Priorität wird das ganze allerdings keine sonderlich hohe haben, da man das ja auch jetzt über den GM lösen kann, indem man einfach zwei Files aufmacht und den Inhalt des einen in das andere schreibt.

      Natürlich. Per Dll wärs aber deutlich schneller nehme ich an. Wie auch immer.
      Eine Datei so kopieren dass man sie normal öffnen kann... ist doch irgendwo sinnlos, oder? Von daher wäre ein Header kein Problem. Die Lesen-Funktion sollte den Inhalt eher wieder in eine andere (mit der Anfangsdatei identische) Datei kopieren. Wenn mand en Inhalt im Spiel selbst brauch, kann man ja das ganze über Strings lösen.

      Willst du auf diese Drachen und -eier klicken?
      Sie werden sich freuen ;)