[Monkey] Textdatei unter mojo2 auslesen
Übersicht

![]() |
nX^Betreff: Textdatei unter mojo2 auslesen |
![]() Antworten mit Zitat ![]() |
---|---|---|
Wie kann ich einfach eine Textdatei auslesen bzw erstellen unter mojo2? So einfach wie mit mojo1 funktioniert das nicht mehr... | ||
![]() |
Farbfinsternis |
![]() Antworten mit Zitat ![]() |
---|---|---|
Mein Monkey-File heißt "loadfile.monkey", demzufolge heißt mein Data-Verzeichnis "loadfile.data". Dort drin habe ich eine Datei namens "data.txt" angelegt mit dem Inhalt: "Hello World". Folgender Code lädt diese Datei und zeigt den Inhalt mittels Mojo2 an:
Code: [AUSKLAPPEN] Strict Import mojo2 Class MyApp Extends App Field data:String Field canvas:Canvas Method OnCreate:Int() canvas = New Canvas() data = LoadString("data.txt") Print data Return 0 End Method OnUpdate:Int() Return 0 End Method OnRender:Int() canvas.Clear() canvas.DrawText(data, 10, 10) canvas.Flush() Return 0 End End Function Main:Int() New MyApp() Return 0 End Eine Textdatei laden funktioniert immer noch genauso wie früher. Nur die Verwaltung des Canvas ist anders. |
||
Farbfinsternis.tv |
![]() |
nX^ |
![]() Antworten mit Zitat ![]() |
---|---|---|
Die Variante hatte ich schon in der Monkey Hilfe gesehen... Ist dass die einzigste Möglichkeit? Ich kann ja nur einen String auslesen und keinen int oder mehrere Zeilen? | ||
![]() |
Farbfinsternis |
![]() Antworten mit Zitat ![]() |
---|---|---|
Wenn Du verschiedene Daten aus einem File lesen willst empfehle ich XML. Aber das ist ein anderes, wesentlich größeres Thema. Sollte Dich das interessieren kann ich das gern weiter ausführen.
Du kannst natürlich Deine Textdatei selbst ordnen. Wenn Du weißt wann wo ein Integer, Float oder was auch immer kommt, steht es Dir frei diesen Teil dorthin zu casten. Dafür lädst Du halt Deine Textdatei und untersuchst sie selbst. |
||
Farbfinsternis.tv |
![]() |
nX^ |
![]() Antworten mit Zitat ![]() |
---|---|---|
Das ich die Datei selbst untersuchen muss ist klar, aber kann ich nur strings Auslesen oder auch andere Datentypen?
Wenn ich alles selber aus dem String klamüsern muss, wäre wahrscheinlich Xml die richtige Wahl.... |
||
![]() |
Farbfinsternis |
![]() Antworten mit Zitat ![]() |
---|---|---|
Da LoadString Dir nur einen String zurück gibt kannst Du auch nur mit diesem String arbeiten. Es gibt noch andere Möglichkeiten Dateien zu lesen, aber die sperren einige Targets aus und sind recht komplex. Ich empfehle XML oder JSON um die Möglichkeit zu behalten alle Ziele abzudecken. | ||
Farbfinsternis.tv |
![]() |
nX^ |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ist das Gegenstück zum auslesen writestring oder ist das ohne weiteres nicht möglich?
Ich möchte im Prinzip ein paar Werte auslesen, diese verändern und dann in der Datei überschreiben... |
||
![]() |
kog |
![]() Antworten mit Zitat ![]() |
---|---|---|
Als möglichkeit gäbe es da auch noch Databuffer.Load | ||
Windows 7 Home Premium 64bit
CPU: Intel Core i5 3450 Ivy Bridge GPU: HIS HD 4870 1GB GDDR5 RAM: 4x 4GB DDR3-SDRAM Dual Channel |
![]() |
Farbfinsternis |
![]() Antworten mit Zitat ![]() |
---|---|---|
Es gibt noch die Klasse "FileStream". Diese steht natürlich nicht auf allen Targets zur Verfügung. Alle Targets welche nach C++, C# oder Java kompilieren werden aber unterstützt.
Mit "FileStream.Open()" kannst Du eine Datei zum lesen oder schreiben öffnen und dann mit den Methoden des Objekts lesen oder schreiben: Code: [AUSKLAPPEN] Local myFile:FileStream = FileStream.Open("myFile.txt", "r") myFile.ReadByte() myFile.ReadInt() myFile.ReadString() ' und so weiter und so fort |
||
Farbfinsternis.tv |
![]() |
nX^ |
![]() Antworten mit Zitat ![]() |
---|---|---|
Wie läuft dass denn unter html5 bzw Flash ab? | ||
![]() |
Farbfinsternis |
![]() Antworten mit Zitat ![]() |
---|---|---|
Bei HTML5 oder Flash kannst Du keine Daten schreiben (außer mittels SaveState). Wenn Du hier Daten schreiben willst musst Du etwas völlig eigenes bauen und Deine Sachen an ein Serverscript (bspw. PHP) schicken, welches es dann auf dem Server sichert. | ||
Farbfinsternis.tv |
![]() |
nX^ |
![]() Antworten mit Zitat ![]() |
---|---|---|
Das Problem wenn ich den Filestream benutze, bekomme ich jedesmal die Meldung "FileStream" not found unter Glfw oder iOs Target...
Edit: Kann das damit zusammenhängen, dass ich mojo2 importiere statt mojo? |
||
![]() |
Farbfinsternis |
![]() Antworten mit Zitat ![]() |
---|---|---|
Das hat mit mojo2 nichts zu tun, importiere anstelle von FileStream einfach "brl" und es funktioniert da FileStream Abhängigkeiten besitzt. | ||
Farbfinsternis.tv |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group