ini dateien ohne den namen öffnen

  • ini dateien ohne den namen öffnen

    hallo

    ich möchte in mein spiel verschiedene sprachen einbauen. die sprachen sind in ini dateien gespeichert. ich will, dass man auch eigene sprachen hinzufügen kann, doch dazu muss das spiel ja wissen wie die ganzen dateien heißen. kann man die dateien irgendwie öffnen, ohne dass man den namen weiß? ich habs schon mit file_find_first und file_find_next probiert, aber da kapier ich des nich ganz da kommt immer n fehler, dass ich nen falschen type of argument hab, obwohl ich alles so wie in der hilfe gemacht habe.


  • kannst du nicht auch den pfad der dateien in die ini schreiben

    zb "sprachen.ini" und da stehen dann die sprachen und die pfade der dateien drinnen

    sprachen.ini:

    [german]
    pfad=deutsch.ini
    [english]
    pfad=english.ini
    [...]
    pfad=....ini
    PI 0%(IN PROGRESS)
    [IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII]
    [IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII]

    Engine : 0.0 %
    KI : 0.0 %
    Grafik : 0.0%
    Sounds: 0.0 %
    Multiplayer: 0.0%

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

  • meinst du,wenn man ne neue sprache erstellt, dass man den pfad der ini in ne andere ini schreibt? es gibt schon spiele, di mit dem gmaker erstellt wurden und bei denen man das auch konnte, ohne den pfad zusätzlich irgendwo reinzuschreiben(z.b. Achterbahnfahrer)

    Edit: ausserdem wie mache ich dann, falls ich es so mache, wie du es gesagt hast, dass er dann in der section sucht? er weiß ja nicht wie die section heißt.


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

  • Etwa so in der Art:

    var langfile;

    GML-Quellcode

    1. language_list=ds_list_create();
    2. langfile=file_find_first("lang_*.ini",0);
    3. while (langfile!=''){
    4. ds_list_add(language_list,langfile);
    5. langfile=file_find_next() ;
    6. }
    7. file_find_close();


    Dadurch wird eine Liste der Sprachdateien, deren Dateiname dem Format lang_*.ini (lang_de.ini, lang_en.ini, lang_fr.ini), und die im Spielverzeichnis liegen, erzeugt. Du kannst die vorhandenen Dateinamen dann in der Liste language_list abrufen und mit denen arbeiten.
    "Die Erde ist ein Irrenhaus. Dabei könnte das bis heute erreichte Wissen der Menschheit aus ihr ein Paradies machen. Dafür müsste die weltweite Gesellschaft allerdings zur Vernunft kommen."
    - Joseph Weizenbaum
  • dann mach es so lege dir einen neuen ordner in deinem spielverzeichniss an

    den nennst du "sprachen"

    dan im code

    im create event

    tempfile = 0

    da wo du die sprache aus den dateien lädst:

    GML-Quellcode

    1. tempfile = file_find_first(working_directory + "\sprachen\*.ini",0)
    2. while(tempfile != "")
    3. {
    4. //in tempfile steht jetzt der name der datei mit dem du sie dann öffnen kannst
    5. //mach mit der datei was du wills
    6. //zb file_text_open_read(tempfile)
    7. tempfile = file_find_next()
    8. }
    9. file_find_close()
    Alles anzeigen


    edit: war wol zu langsam(musste ja unbedingt mittag machen :D)
    PI 0%(IN PROGRESS)
    [IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII]
    [IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII]

    Engine : 0.0 %
    KI : 0.0 %
    Grafik : 0.0%
    Sounds: 0.0 %
    Multiplayer: 0.0%

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

  • Ich hoffe das du ini datei benützt sonst ändere diese zeile

    tempfile = file_find_first(working_directory + "\sprachen\*.ini",0)

    auf

    tempfile = file_find_first(working_directory + "\sprachen\*.txt",0)

    oder was auch immer du benutzt

    und die dateien müssen in diesem Ordner liegen
    tempfile = file_find_first(working_directory + "\sprachen\*.ini",0)

    hast du bei extras|Ordner optionen|Anischt|Erweiterung bei bekanten datentypen ausblenden das häckchen drinnen?

    wenn ja tu es raus un bennene die datei in german.ini um

    ps wie meinst du das kommt nix raus?

    geht er nicht in die while schleife?

    bitte ein bischen genauer
    PI 0%(IN PROGRESS)
    [IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII]
    [IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII]

    Engine : 0.0 %
    KI : 0.0 %
    Grafik : 0.0%
    Sounds: 0.0 %
    Multiplayer: 0.0%

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

  • schreib bitte mal den ganzen code hier herein
    und die ordnerstruktur zb "c:\...\sprachen\..."
    PI 0%(IN PROGRESS)
    [IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII]
    [IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII]

    Engine : 0.0 %
    KI : 0.0 %
    Grafik : 0.0%
    Sounds: 0.0 %
    Multiplayer: 0.0%
  • Für Datenstrukturen brauchst du die registrierte Version, du kannst aber stattdessen einfach arrays nehmen:

    GML-Quellcode

    1. var file;
    2. file = file_find_first("sprachen\*.ini",0);
    3. lang_n = 0;
    4. while (file != "") {
    5. lang[lang_n] = file;
    6. lang_n += 1;
    7. file = file_find_next();
    8. }
    9. file_find_close();


    Dann hast du die Namen aller ini Dateien im Ordner "sprachen" (ohne Pfad) im array lang und lang_n enthält die Anzahl der Dateien.
  • nach einigem rumprobieren habe ich es jetzt geschafft! ich hatte einen fehler in meinem code. aber dann kam eine fehlermeldung, dass ini dateien immer im selben ordner wie das spiel sein müssen. die hab ich dann weggekriegt, indem ich die sprachen vorne mit "lang_" benannt habe und den code dementsprechend geändert habe. DANKE euch allen für die antworten!


  • edit: zu langsam
    PI 0%(IN PROGRESS)
    [IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII]
    [IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII]

    Engine : 0.0 %
    KI : 0.0 %
    Grafik : 0.0%
    Sounds: 0.0 %
    Multiplayer: 0.0%

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

  • Benutzer online 1

    1 Besucher