PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Auslesen aus einer Textdatei



Kelven
27.02.2008, 12:54
Wir haben folgende Situation: Ich benutze für mein Spiel ein selbstgescriptetes System zur Ausgabe der Dialoge. Dabei werden die Dialogzeilen einfach aus einer Textdatei eingelesen. Das Problem ist nun, dass das readline von Ruby offenbar Umlaute komplett übergeht, es wird nicht mal ein Steuerzeichen eingelesen. Gibt es eine Möglichkeit das Ruby beizubringen oder muss ich wie bisher anstelle der Umlaute einen eigenes Steuerzeichen benutzen, der dann später ausgetauscht wird?

Ascare
27.02.2008, 14:29
Welche Kodierung hat denn deine Textdatei? Ist ja auch wichtig...versuch mal UTF-8.

Kelven
27.02.2008, 14:46
Vielen Dank, das hat schon geholfen. ;)

Lil_Lucy
28.02.2008, 00:53
Das wäre eventuell auch für mich interessant. Könntet ihr mir schnell beschreiben wie man das macht, das mit dem Auslesen aus ner Textdatei, und vorallem was ein UTF-8 ist?

-KD-
28.02.2008, 01:43
dateiinhalt = File.open("./meine_datei.txt", "r") {|input| input.read}
Dann enthält dateiinhalt den String der im Textdokument steht.

UTF8 ist ein Codierungsformat für Unicode. Dürfte aber nicht das Problem sein das in Wikipedia nachzulesen. Um eine Datei als UTF8 abzuspeichern einfach beim Abspeichern der Textdatei mit dem Texteditor bei "Codierung" UTF8 auswählen.

Kelven
28.02.2008, 09:44
Natürlich bekommst du so den Inhalt der gesamten Datei als String. Um jetzt einen bestimmten Dialog auszugeben könntest du die Textdatei ähnlich wie ein XML-Dokument aufbauen und nach bestimmten Tags suchen lassen. Ich hab das so gemacht, dass jede Zeile der Textdatei mit readline eingelesen wird bis ich den Tag finde und dann werden nacheinander Faceset, Name des Charakters und 1-4 Textzeilen eingelesen.

Wischmop
28.02.2008, 09:53
Hmm!
Nur so nebenbei erwähnt... aber das ist eigentlich ziemlich flexibel, das System, oder? Ich meine, man kann sich ja auch mit den (offiziell 4) 3 Zeilen per Texteingabe oder über Batchentry Text herumspielen, wo Letzteres ja total zum Kotzen ist, wenn man mal etwas umeditieren muss. :\ So kann man auch die ganzen Dialoge gemütlich in einer TXT reintippen... hm.
Muss ich mir überlegen, ob es nicht besser wäre, sowas zu versuchen. My eyes are on this fred!

Kelven
28.02.2008, 09:59
Ja und man kann die Dialoge während das Spiel läuft verbessern; sofern man im Fenstermodus spielt. Aber einen kleinen Haken gibt es natürlich auch. Solche Features wie sie z.B. im UMS enthalten sind, ob nun das Ändern der Textfarbe bis hin zu den Icons, muss man alle selber einbauen.

Abt Ploutôn
28.02.2008, 14:07
Hallo,
aber kann man sowas nicht mit Win32Api machen? oder gleich ne ini nehmen.

Wobei nicht ganz verstehe wieso man seinen Text in ne Textdatei packen muss, oder ist das für ne Multisprachenfunktion?

Gruß Sven

Kelven
28.02.2008, 16:16
Wurde doch schon gesagt. Weil Show Text immer noch verbuggt ist (nur 3 Zeilen anstelle von 4, über Batchentry geht's zwar, aber beim Editieren wird's unhandlich), man nicht das Standard-System einsetzen will oder man lieber den Text neben dem laufenden Spiel verbessern möchte.

-KD-
29.02.2008, 03:52
Hab bei meinen früheren Projekten auch immer in XML-Dateien geschrieben. Die lassen sich btw. mit Rexml auch ganz gut auslesen. Man muss also nicht mal einen eigenen XML-Parser schreiben.

schmoggi
29.02.2008, 21:54
Wurde doch schon gesagt. Weil Show Text immer noch verbuggt ist (nur 3 Zeilen anstelle von 4, über Batchentry geht's zwar, aber beim Editieren wird's unhandlich), man nicht das Standard-System einsetzen will oder man lieber den Text neben dem laufenden Spiel verbessern möchte.

Es gibt da einen schönen "Patch", der u.a. genau das behebt ;). Gibt keine Probleme damit ... arbeite damit schon lange.

* 12-zeiliges Textfeld bei "Call Script"
* 4-zeiliges Textfeld bei "Show Text"
* der Pfeil bei "Show Text" ist jetzt an der richtigen Position
* Hinweis auf die Vorschaufunktion (F2) bei "Show Text"

http://rapidshare.com/files/74062893/RPGXP_Lime.rar.html

Auch wenn es die vorhandene Exe ersetzt, das ist kein Crack, der die Trial zur VV macht. Es wird die Originale Version, auf 1.02 gepatcht, benötigt! Allerdings ... wurde im Maker selbst was verändert und könnte deshalb nicht 100% legal sein ... aber ich bitte euch ... man sollte das jetzt nicht so eng sehen Oo, vor allem da es "Fehler" im Maker selbst behebt.

greetz

Kelven
01.03.2008, 09:47
Wenn ich mir den Maker schon legal gekauft habe, dann bleibe ich auch bei der Legalität und benutze nicht irgendwelche dubiosen Patches.;)

schmoggi
01.03.2008, 12:59
Na dann, deine Entscheidung! Dubios ist es aber keinesfalls!

greetz

Mordechaj
11.10.2009, 08:22
Kann mir als völligen Laien und Ruby-Unbewandertem erklären, wie man das macht, Dialoge aus einer Textdatei auslesen zu lassen? Oder viel besser noch: Gibt es für den RMXP nicht vielleicht ein Programm ähnlich wie der DreaMaker für den RM2k(3)? Oder ein fertiges Script, das das übernimmt?

Es würde mir das Arbeiten um einiges erleichtern, nur bin ich wie gesagt nicht in der Lage, mir das alleine irgendwie herbeizuzaubern (vermutlich wäre es einfacher, irgendwelche Assoziationen in diesem ganzen Ruby-Sprachen-Kram zu finden, wenn ich irgendwann in meinem Leben mal eine Programmiersprache gelernt hätte). Für Lösungsvorschläge bis hin zu Ausarbeitungen bin ich überaus dankbar und je nach Aufwandt lässt sich da sicher auch was als unbedeutende Gegenleistung erbringen. ;)