Ergebnis 1 bis 3 von 3

Thema: for file in ...

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1

    for file in ...

    Guten Abend.
    Ich habe mir heute die Zeit damit vertrieben die File und Marshal Klassen genauer an zu schauen.

    Ich habe herausgefunden wie man files erstellt, daten speichert und sie wieder lädt.
    Das einzige Problem welches sich mir nun jedoch erschließt ist folgendes, ich scheine nur Dateien öffnen zu können dessen Namen ich angeben muss.
    Ich würde allerdings dem Spieler liebend gern die Möglichkeit geben selbst einen Dateinamen auswählen zu können.
    Theoretisch ist dies ja machbar, allerdings müsste der Spieler anschließend jedoch jedesmal den Namen der Datei neu eingeben um sie Laden zu können.

    Dieser Arbeitsaufwand für den Spieler würde in meinen Augen keinerlei Sinn machen, also hier meine Frage:

    Kann ich per Ruby Script (Wenn möglich bitte für Normalsterbliche erklärt da ich mich nicht sonderlich damit auskenne.) alle Files in einem directory auswählen und ihre Namen in einer Liste angeben lassen von welchen der Spieler dann wählen kann?
    Die Liste und die Auswahl kann ich natürlich selbst schreiben.

    Danke im Vorraus.
    Cornix.

    Edit: Ich habe inzwischen versucht über folgenden Code eine Lösung zu finden, leider ohne Erfolg.

    filename = File.expand_path("...")
    file = File.open(filename, "rb")

    Ergebniss dessen war folgende, eindeutige, Fehlermeldung:

    [...] Errno::EACCES occured.
    Permission Denied - E:/RPG Maker XP/Projects/Test-Project/...

    Ich denke, ich kann dem RMXP wohl nicht befehlen einen Ordner außer das File zu öffnen da ich sonst gegen die Zugriffsrechte verstoße.

    Freue mich natürlich immernoch über jegwelche Antworten und Lösungsansätze.

    Geändert von Cornix (30.11.2009 um 20:43 Uhr)

  2. #2
    also dateien in einem order findes du per DIR["ordner"]
    Bsp:
    for file in Dir["Data/*"]
    file.gsub!("Data/","")
    file.gsub!(".rxdata","")
    print file
    end

    Dir["Data/*"] gibt einen array mit allen dateien als string zurück.
    in diesem fall:
    "Data/Actors.rxdata","Data/Animations.rxdata" etc
    damit kannst du die datei shcon laden.
    expand_path ist unnötig, da automatisch im spielordner gesucht wird (liegt daran dass keine festplatte am anfang angegeben wurde).

    wenn du nur die dateinamen anzeigen willst, musst du ordner und dateiendung entfernen.
    dazu das gsub!("zu entfernender string","wird ersetzt durch")

    PS: möglich ist auch
    for file in Dir["Data/*.rxdata"]
    damit bekommst du nur die rxdata dateien

  3. #3
    Sehr herzlichen Dank, das war sowohl informativ als auch genau der Fragestellung entsprechend geantwortet.

    Es hilft mir sehr weiter.

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •