In meinem Projekt soll mein Proggi eine RTF-Datei (Textvorlage mit Platzhaltern) einlesen, die Platzhalter gemäss Usereingaben ersetzen und als temoräre RTF-Datei wieder speichern.
Meine Testroutine sieht so aus:
Code: Alles auswählen
ErsatzString$="abcABC 123"
buffer$=""
If ReadFile(0, GetUserDirectory(#PB_Directory_Documents)+"vorlage.rtf")
While Eof(0) = 0
buffer$ = buffer$ + ReadString(0)
Wend
CloseFile(0)
buffer$ = ReplaceString(buffer$, "**V_Platzhalter1**", ErsatzString$)
; hier stehen später noch ca. 25 andere Platzhaltertausche, der jeweilige Platzhalter wird je nach Usereingabe mit einem kürzeren oder auch längeren String ersetzt.
If CreateFile(1, GetUserDirectory(#PB_Directory_Documents)+"fertigtext.rtf")
WriteStringN(1, buffer$)
CloseFile(1)
Else
MessageRequester("Info","Datei nicht erstellt")
EndIf
Else
MessageRequester("Info","Vorlage nicht geöffnet")
EndIf
a) Umlaute, ß (und evtl. auch andere Zeichen) werden falsch dargestellt
b) An einer ganz anderen Stelle auf Seite 2 wird aus "Ort, Datum, Unterschrift" der "Ort" entfernt, es bleibt ", Datum, Unterschrift".
Was muss ich mit den Umlauten anstellen, damit die korrekt eingetragen werden?
Kann es sein, dass ich die RTF-Datei nicht so einlesen darf? Oder entsteht der Fehler beim Schreibvorgang? Muss man die Datei evtl. byteweise einlesen und/oder byteweise schreiben? Wie wäre der richtige Weg?