Seite 1 von 1

[gelöst] Zeilenumbruch im EditorGadget

Verfasst: 22.09.2021 14:18
von MenschMarkus
Hi,
Ich versuche gerade einen Text mit Steuerzeichen im Editor Gadget dar zu stellen. Solange ich die Eingabe direkt im Editor Gadget vornehme und Tabs "CHR(9)" oder Zeilenvorschung "CHR(10)" oder CHR(13) eingebe wird das alles auch schön dargestellt. Jetzt speichere ich diese Information in eine Datei. Soweit so gut. Schaue ich mir die Datei im Notepad an, ist alles auch genau so wie im Editor Gadget eingegeben.
Öffne ich die Datei und möchte die Information wieder darstellen sind alle CHR(10), CHR(13) oder #CRLF$ verloren gegangen. Tabs CHR(9) werden aber korrekt dargestellt.
Hat jemand einen Tipp wie ich auch Zeilenumbrüche wieder darstellen kann?

Mit folgendem Beispiel kann man den Effekt schön sehen. In der Textdatei ist alles so wie es sein sollte und das Editor Ergebnis schaut halt nicht so aus.

Code: Alles auswählen

Procedure EditorTest()
  Define text.s
  OpenFile(0,"test.txt")
  WriteStringN(0,"Dies ist ein Text" + Chr(10) + Chr(13) + Chr(9) + "und hier eine zweite Zeile")
  CloseFile(0)
  OpenWindow(0,100,100,320,200,"EditorGadget")
  EditorGadget(0,2,2,316,176)
  OpenFile(0,"test.txt")
  While Not Eof(0)
    text + ReadString(0)
  Wend
  CloseFile(0)
  SetGadgetText(0,text)
  Repeat
    WaitWindowEvent()
  Until WindowEvent() = #PB_Event_CloseWindow
EndProcedure
EditorTest()

Re: Zeilenumbruch im EditorGadget

Verfasst: 22.09.2021 16:33
von matbal
ReadString() liest bis zum Zeilenumbruch. Der Dateizeiger wird anschließend am Anfang der nächsten Zeile gesetzt, so daß nach jedem ReadString() immer der Inhalt einer Zeile gelesen wird.

Wenn du den Zeilenumbruch brauchst, mußt du ihn wieder anhängen.

Re: Zeilenumbruch im EditorGadget

Verfasst: 22.09.2021 17:29
von Kiffi
ReadString() hat einen Parameter #PB_File_IgnoreEOL. Damit kannst Du den gesamten Inhalt der Datei in einem Rutsch lesen. Die Zeilenumbrüche bleiben dabei erhalten.

Code: Alles auswählen

OpenFile(0,"test.txt")
text = ReadString(0, #PB_File_IgnoreEOL)
CloseFile(0)

Re: Zeilenumbruch im EditorGadget

Verfasst: 23.09.2021 09:39
von MenschMarkus
Danke Kiffi, das wars was ich gesucht hatte. :allright: