In leichter Erweiterung des Problems hätte ich eine Frage:

Hat jemand Erfahrung mit dem Speichern eines relativ komplex formatierten Textes in RTF? Ich versuche einen Text zu speichern, den ich mittels Copy/Paste problemlos (und formatiert) nach TextEdit herausbekomme, aber mit der Routine der "Language Reference" fürs Speichern bekomme ich den 'ewigen Umgang'.

************
Dim s as TextOutputStream
Dim f as FolderItem
f= GetSaveFolderItem(TextTypes.TextRtf,"TestSaveRTF")
s=f.CreateTextFile
s.Write EditField1.StyledText.RTFData
s.Close
**********

Das Programm stürzt dabei nicht ab sondern orgelt - wenn erwünscht - über mehrere Stunden vor sich hin. Es handelt sich beim Text um eine Art Inhaltsverzeichnis von ca. 20 Seiten mit normal, fett und kursiv in jeder Zeile ( also ca. 700 Zeilen). Das ist nicht wahnsinnig viel.

Wenn ich (was mir aus Versehen passierte) anstelle der Instanz das Grundfenster mit leerem Editfield exportiere ohne sonst etwas am Code zu ändern, wird eine kurze Initialisierungszeile mit den Editfield- Formaten korrekt gespeichert.

Ich kann z.Zt. mit Copy/Paste leben, wäre aber doch froh zu wissen, ob andere auch diese Erfahrung haben.

Gruss
Karl Grob

Am 18.10.2007 um 11:48 schrieb Stefan Sicurella:

vielen Dank, das geht auch hier

nur wollte ich es lieber als RTF machen wegen Cross-Plattform. Aber ich teste es gleich mal unter Win, wenn es da geht , also wenn alle styles erhalten bleiben, brauche ich rtf nicht.

Das Problem mit rtf war, dass ich es nicht mehr in das styled Editfield zurück bekommen hatte sondern alles nur als eine Textzeile

Gruß

Stefan
......Hab jetzt den Thread nicht ganz verfolgt, aber ich lege die Textstysledaten in der DB folgendermaßen ab, und es geht.

textstyle Feld in der DB als binary anlegen

dim a, b as string
a =  EncodeBase64(self.TextFeld.text,0)
b =  EncodeBase64(self.TextFeld.TextStyleData,0)

Diese Daten in die DB ...

Bei Rausholen dann wieder DecodeBase64, in ein DataControl z.B. so:

a=DecodeBase64(DataControl1.Recordset.IdxField(8).StringValue
b=DecodeBase64(DataControl1.Recordset.idxfield(9).StringValue
TextFeld.SetTextAndStyle a,b

Vielleicht kannst Du was damit anfangen.....

Gruß
Achim












Antwort per Email an