Ergebnis 1 bis 4 von 4

Thema: Textdateien erstellen und beeinflussen

  1. #1

    Doktor von Stein Gast

    Textdateien erstellen und beeinflussen

    Kurz und bündig:
    Wie kann ich den Inhalt einer Text Datei beeinflussen, inklusive Zeilenumbrüchen?
    Mit dem RGSS-internen File.open bekomme ich das nämlich nicht hin.

    MfG Salamie

  2. #2
    Mit dieser Zeile:
    Code:
    somefile = File.open("DATANAME.txt", "wb")
    Kannst du die Datei "DATANAME.txt" im Spieleordner erstellen, mit der Angabe "wb" sagst du aus, dass du in die Datei schreiben willst "w == write" und zwar binäreinträge "b == binary".

    Über diese Zeile:
    Code:
    somefile.write(sometext)
    lässt du den String "sometext" in die Datei "somefile" schreiben welche du natürlich vorher über die oben angegebene Zeile hast öffnen müssen.

    Einen Zeilenumbruch machst du folgendermaßen:
    Code:
    somefile.write("\r\n")
    Der String "\r\n" bedeutet nämlich einen Zeilenumbruch, du kannst diesen auch an das Ende eines Textes anhängen, zum Beispiel:
    Code:
    somefile.write(sometext + "\r\n")
    Am Ende ist es wichtig, dass du die Datei auch wieder schließt:
    Code:
    somefile.close
    Hier ein kleines Beispiel:
    Diese Funktion würde eine Textdatei im Ordner des Spieles erstellen mit Namen "Settings" welche usereigene Menüeinstellungen speichert.
    Code:
      def create_settings_file
        file_settings = File.open("Settings.txt", "wb")
        file_settings.write("Game Settings\r\n")
        file_settings.write("\r\n")
        file_settings.write("fullscreen = "+$fullscreen.to_s)
        file_settings.close
      end
    Ich habe das ganze der Übersichtswegen in dieser Form geschrieben, man könnte natürlich auch folgendes tun:
    Code:
      def create_settings_file
        file_settings = File.open("Settings.txt", "wb")
        file_settings.write("Game Settings\r\n\r\nfullscreen = "+$fullscreen.to_s)
        file_settings.close
      end
    Das Ergebnis wäre das gleiche.

    Das Ergebniss würde ungefähr so aussehen:
    Zitat Zitat
    Game Settings

    fullscreen = 1
    Falls die globale Variable $fullscreen auf 1 gesetzt wäre.

    Ich hoffe dies konnte einigermaßen hilfreich sein.

    Geändert von Cornix (14.06.2011 um 16:14 Uhr)

  3. #3
    Noch drei Anmerkungen:
    - Wenn du Textdateien bearbeiten/schreiben/lesen willst, solltest du sie nicht im binary mode öffnen. Also File.open("meine_datei", "w") statt File.open("meine_datei", "wb"). Dann sparst du dir auch das "\r\n" bei Zeilenumbrüchen und kannst ganz normal "\n" als Zeilenumbruch nutzen. Mit puts statt write werden automatisch Zeilenumbrüche gesetzt.
    - Textdateien die du liest sollten in UTF-8 kodiert sein. Dateien, die du schreibst, werden automatisch UTF-8 kodiert
    - Wenn du die Block-Variante von File verwendest, sparst du dir das file.close und bist auch für eventuelle Fehler abgesichert.
    Code:
    File.open("meine_datei", "w") do |input|
      input.puts "Game Settings"
      input.puts "fullscreen = 1"
    end
    Zum Lesen musst du "r" statt "w" verwenden. Willst du gleichzeitig lesend und schreibend auf die Datei zugreifen, verwendest du "r+".

  4. #4

    Doktor von Stein Gast
    Danke für die schnellen Antworten.

Berechtigungen

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