Archiv verlassen und diese Seite im Standarddesign anzeigen : Textdateien erstellen und beeinflussen
Doktor von Stein
14.06.2011, 15:03
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
Mit dieser Zeile:
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:
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:
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:
somefile.write(sometext + "\r\n")Am Ende ist es wichtig, dass du die Datei auch wieder schließt:
somefile.closeHier ein kleines Beispiel:
Diese Funktion würde eine Textdatei im Ordner des Spieles erstellen mit Namen "Settings" welche usereigene Menüeinstellungen speichert.
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:
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:
Game Settings
fullscreen = 1Falls die globale Variable $fullscreen auf 1 gesetzt wäre.
Ich hoffe dies konnte einigermaßen hilfreich sein.
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.
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+".
Doktor von Stein
14.06.2011, 17:28
Danke für die schnellen Antworten. :)
Powered by vBulletin® Version 4.2.3 Copyright ©2025 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.