Datei "Zeilenweise" auslesen mit loadtext?

Übersicht BlitzMax, BlitzMax NG Beginners-Corner

Neue Antwort erstellen

Knyk

Betreff: Datei "Zeilenweise" auslesen mit loadtext?

BeitragSo, Feb 24, 2013 16:15
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo,

Ich möchte eine Datei Zeilenweise auslesen und wieder abspeichern können.

bisher habe ich das immer mir readline/writeline gemacht. Das macht nun aber Schwierigkeiten mit den Umlauten.
Hier: https://www.blitzforum.de/foru...hp?t=39265 habe ich gelesen dass "Loadtext" das Ganze beheben soll. Tut es auch. Die Strings werden richtig ausgelesen, ABER eben nicht Zeilenweise.
Wie kann ich eine Datei mit loadtext so laden & speichern, dass ich sie zeilenweise abarbeiten kann?

Und wenn das mit Loadtext nicht geht, wie bekomm ichs dann hin, dass Umlaute keinen ärger machen?

Danke

ZEVS

BeitragSo, Feb 24, 2013 16:20
Antworten mit Zitat
Benutzer-Profile anzeigen
Es gibt zwei Möglichkeiten:
1. Mit LoadText auslesen und dann mit Split aufspalten:
BlitzMax: [AUSKLAPPEN]
Local lines$[] = LoadText("bla.txt").Split("\n")
For Local line$ = EachIn lines
line = line.Trim()
' (auswerten)
Next

2. LoadText greift auf einen TextStream zurück, den du auch selbst benutzen kannst:
BlitzMax: [AUSKLAPPEN]
Local fileStream:TStream = ReadFile("bla.txt")
Local textStream:TTextStream = New TTextStream
textStream.SetStream fileStream
' (ganz normal mit textStream weiterarbeiten)
textStream.Close
fileStream.Close

(beide Codes sind nicht getestet)

ZEVS

Knyk

BeitragSo, Feb 24, 2013 16:57
Antworten mit Zitat
Benutzer-Profile anzeigen
Also:
Deine erste Methode gibt bei mir genau wie loadtext allein einfach alles zurück. Was mich selber wundert (Die Zeilensprünge in der Datei stimmen definitiv)

Und deine zweite Methode liefert mir nichts. (Das liegt wahrscheinlich daran, dass ich was falsch mache.)

Xeres

Moderator

BeitragSo, Feb 24, 2013 17:03
Antworten mit Zitat
Benutzer-Profile anzeigen
Zeilenumbrüche werden nicht mit "\n" sondern mit "~n" escaped.
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus
T
HERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld)

Knyk

BeitragSo, Feb 24, 2013 17:19
Antworten mit Zitat
Benutzer-Profile anzeigen
Uh tatsächlich. Das Auslesen läuft jetzt! Danke Xeres! (ZEVS natürlich auch)

Und wie schreibe ich jetzt am besten?

bis jetzt lief das bei mir ja so:

BlitzMax: [AUSKLAPPEN]

file=WriteFile ("bla.txt")
xlist = 0
Repeat

WriteFile GadgetItemText(folderlist, xlist), file
xlist=xlist+1
Until xlist= CountGadgetItems(folderlist)


@Xeres: Mal angenommen ich hätte keine Ahnung was das "~n" bedeutet. Wo könnte ich was darüber (und split) nachlesen? Rein hypothetisch natürlich! Laughing Embarassed Smile

Xeres

Moderator

BeitragSo, Feb 24, 2013 17:40
Antworten mit Zitat
Benutzer-Profile anzeigen
Du meinst da sicher WriteLine in deinem Code.
Die Escape sequenzen findest du in der Doku unter "Language reference" -> "Literals". Split ist eine Methode von Strings, also gibt es das unter "Language reference" -> "Strings" - ist aber nicht wirklich ausführlich.
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus
T
HERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld)

Neue Antwort erstellen


Übersicht BlitzMax, BlitzMax NG Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group