[Monkey] Textdatei unter mojo2 auslesen

Übersicht Andere Programmiersprachen Allgemein

Neue Antwort erstellen

nX^

Betreff: Textdatei unter mojo2 auslesen

BeitragMi, Dez 16, 2015 14:31
Antworten mit Zitat
Benutzer-Profile anzeigen
Wie kann ich einfach eine Textdatei auslesen bzw erstellen unter mojo2? So einfach wie mit mojo1 funktioniert das nicht mehr...

Farbfinsternis

BeitragMi, Dez 16, 2015 20:15
Antworten mit Zitat
Benutzer-Profile anzeigen
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^

BeitragMi, Dez 16, 2015 21:03
Antworten mit Zitat
Benutzer-Profile anzeigen
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

BeitragMi, Dez 16, 2015 21:15
Antworten mit Zitat
Benutzer-Profile anzeigen
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^

BeitragMi, Dez 16, 2015 21:36
Antworten mit Zitat
Benutzer-Profile anzeigen
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

BeitragMi, Dez 16, 2015 21:42
Antworten mit Zitat
Benutzer-Profile anzeigen
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^

BeitragMi, Dez 16, 2015 22:06
Antworten mit Zitat
Benutzer-Profile anzeigen
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

BeitragDo, Dez 17, 2015 12:45
Antworten mit Zitat
Benutzer-Profile anzeigen
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

BeitragDo, Dez 17, 2015 18:04
Antworten mit Zitat
Benutzer-Profile anzeigen
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^

BeitragDo, Dez 17, 2015 19:39
Antworten mit Zitat
Benutzer-Profile anzeigen
Wie läuft dass denn unter html5 bzw Flash ab?

Farbfinsternis

BeitragDo, Dez 17, 2015 20:06
Antworten mit Zitat
Benutzer-Profile anzeigen
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^

BeitragSa, Dez 19, 2015 19:07
Antworten mit Zitat
Benutzer-Profile anzeigen
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

BeitragDi, Dez 22, 2015 23:10
Antworten mit Zitat
Benutzer-Profile anzeigen
Das hat mit mojo2 nichts zu tun, importiere anstelle von FileStream einfach "brl" und es funktioniert da FileStream Abhängigkeiten besitzt.
Farbfinsternis.tv

Neue Antwort erstellen


Übersicht Andere Programmiersprachen Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group