RichMemo und (Memory-)Stream und ...Umlaute
-
- Beiträge: 16
- Registriert: Mi 15. Aug 2012, 10:14
- OS, Lazarus, FPC: Debian unstable, Lazarus 2.0.8+dfsg-1, fpc-3.0.4
- CPU-Target: AMD64
- Wohnort: Aachen
RichMemo und (Memory-)Stream und ...Umlaute
Liebes Forum,
bis jetzt habe ich immer nur durch Mitlesen profitiert, aber mein aktuelles Problem kriege ich durch Forumsuche und Googeln leider nicht gelöst:
Ich möchte gerne den Inhalt vieler RichMemos speichern und später wieder herstellen können. Das ist mit einem MemoryStream und SaveRichText/LoadRichText im Prinzip möglich, leider geht dabei nach jedem Umlaut immer ein Zeichen verloren. Wenn ich "Verändern" kopiere, kommt "Verädern" (ohne das n) an.
Das angehängte Miniprojekt sollte das Problem verdeutlichen: Wenn ich in das linke RichMemo etwas eintippe und dann den Button klicke, kommt rechts eine verstümmelte Version an.
Ich habe mir schon die Finger und Augen wundgegoogelt, zu Umlauten und Kodierung gibt es ja Unmengen zu lesen - aber eine Lösung habe ich nicht gefunden.
Irgendwelche Ideen?
bis jetzt habe ich immer nur durch Mitlesen profitiert, aber mein aktuelles Problem kriege ich durch Forumsuche und Googeln leider nicht gelöst:
Ich möchte gerne den Inhalt vieler RichMemos speichern und später wieder herstellen können. Das ist mit einem MemoryStream und SaveRichText/LoadRichText im Prinzip möglich, leider geht dabei nach jedem Umlaut immer ein Zeichen verloren. Wenn ich "Verändern" kopiere, kommt "Verädern" (ohne das n) an.
Das angehängte Miniprojekt sollte das Problem verdeutlichen: Wenn ich in das linke RichMemo etwas eintippe und dann den Button klicke, kommt rechts eine verstümmelte Version an.
Ich habe mir schon die Finger und Augen wundgegoogelt, zu Umlauten und Kodierung gibt es ja Unmengen zu lesen - aber eine Lösung habe ich nicht gefunden.
Irgendwelche Ideen?
-
- Lazarusforum e. V.
- Beiträge: 7192
- Registriert: So 19. Nov 2006, 12:06
- OS, Lazarus, FPC: Linux Mint 19.3
- CPU-Target: AMD
- Wohnort: Oldenburg(Oldenburg)
Re: RichMemo und (Memory-)Stream und ...Umlaute
Bei mir unter Linux mint 19.3, klappt es Problemlos. Ich verwende Lazarus V2.1.0.
MFG
Michael Springwald
Michael Springwald
-
- Beiträge: 16
- Registriert: Mi 15. Aug 2012, 10:14
- OS, Lazarus, FPC: Debian unstable, Lazarus 2.0.8+dfsg-1, fpc-3.0.4
- CPU-Target: AMD64
- Wohnort: Aachen
Re: RichMemo und (Memory-)Stream und ...Umlaute
..oh, sorry: vergessen zu erwähnen:
Debian unstable, Gtk2, Lazarus 2.0.8.+dfsg1.
2.1 ist in Debian noch nicht angekommen... auch nicht in Ubuntu.
Debian unstable, Gtk2, Lazarus 2.0.8.+dfsg1.
2.1 ist in Debian noch nicht angekommen... auch nicht in Ubuntu.
-
- Beiträge: 16
- Registriert: Mi 15. Aug 2012, 10:14
- OS, Lazarus, FPC: Debian unstable, Lazarus 2.0.8+dfsg-1, fpc-3.0.4
- CPU-Target: AMD64
- Wohnort: Aachen
Re: RichMemo und (Memory-)Stream und ...Umlaute
...habe mir gerade auf einen anderen Rechner die neuesten debs von der Lazarus-Seite (lazarus-project_2.0.10-0_amd64.deb, fpc-laz_3.2.0-1_amd64.deb, fpc-src_3.2.0-1_amd64.deb) heruntergeladen und installiert, dann Richmemo aus dem Paketmanager in Lazarus nachinstalliert und das Problem tritt noch immer auf. Nicht der Umlaut selber geht verloren, sondern das Zeichen nach dem Umlaut.
-
- Beiträge: 2118
- Registriert: Di 23. Sep 2014, 17:46
- OS, Lazarus, FPC: Win10 | Linux
- CPU-Target: x86_64
Re: RichMemo und (Memory-)Stream und ...Umlaute
Unter windows 10 tritt das ganze auch nicht auf
PS: in deinem beispiel fehlt ein myStream.Seek(0, soFromBeginning); zwischen dem save und dem load damit es funktioniert
PS: in deinem beispiel fehlt ein myStream.Seek(0, soFromBeginning); zwischen dem save und dem load damit es funktioniert
- Winni
- Beiträge: 1577
- Registriert: Mo 2. Mär 2009, 16:45
- OS, Lazarus, FPC: Laz2.2.2, fpc 3.2.2
- CPU-Target: 64Bit
- Wohnort: Fast Dänemark
Re: RichMemo und (Memory-)Stream und ...Umlaute
Hi!
Hab gerade die Demo runtergeladen und unter Suse Tumbleweed /Lin64, fpc 3.04, Lazarus 2.010 laufen lassen.
Ich kann den Fehler bestätigen: keine Umlaute und der Buchstabe danach geht auch in die Wicken.
* Bug Report schreiben
* Und in der Zwischenzeit nicht so modernes Zeugs wie Streams benutzen:
Funktioniert einwandfrei!!
Winni
Hab gerade die Demo runtergeladen und unter Suse Tumbleweed /Lin64, fpc 3.04, Lazarus 2.010 laufen lassen.
Ich kann den Fehler bestätigen: keine Umlaute und der Buchstabe danach geht auch in die Wicken.
* Bug Report schreiben
* Und in der Zwischenzeit nicht so modernes Zeugs wie Streams benutzen:
Code: Alles auswählen
RichMemo1.Lines.SaveToFile('./test');
RichMemo2.Lines.LoadFromFile('./test');
Winni
-
- Beiträge: 16
- Registriert: Mi 15. Aug 2012, 10:14
- OS, Lazarus, FPC: Debian unstable, Lazarus 2.0.8+dfsg-1, fpc-3.0.4
- CPU-Target: AMD64
- Wohnort: Aachen
Re: RichMemo und (Memory-)Stream und ...Umlaute
Bugreport... ich weiß ja nicht mal, ob das Problem beim Stream oder beim Richmemo liegt.
Liebend gerne würde ich ja auf den Stream verzichten - aber leider benötige ich den nicht, um auf die Festplatte zu schreiben, sondern um den Inhalt von RichMemos schnell austauschen und wiederherstellen zu können. Im Originalprojekt geht es um Stundenpläne für eine Schule; da sollen die Stunden (z.B. 5Tage mal 14 Stunden) in je ein RichMemo eingetragen werden. Da es ja sehr viele Klassen gibt, von denen immer nur eine dargestellt wird, müssen die Inhalte der nicht dargestellten Klassen irgendwo zwischengelagert werden.
Komisch übrigens: Der Umlaut selber ist bei mir vorhanden.
Liebend gerne würde ich ja auf den Stream verzichten - aber leider benötige ich den nicht, um auf die Festplatte zu schreiben, sondern um den Inhalt von RichMemos schnell austauschen und wiederherstellen zu können. Im Originalprojekt geht es um Stundenpläne für eine Schule; da sollen die Stunden (z.B. 5Tage mal 14 Stunden) in je ein RichMemo eingetragen werden. Da es ja sehr viele Klassen gibt, von denen immer nur eine dargestellt wird, müssen die Inhalte der nicht dargestellten Klassen irgendwo zwischengelagert werden.
Komisch übrigens: Der Umlaut selber ist bei mir vorhanden.
-
- Beiträge: 2118
- Registriert: Di 23. Sep 2014, 17:46
- OS, Lazarus, FPC: Win10 | Linux
- CPU-Target: x86_64
Re: RichMemo und (Memory-)Stream und ...Umlaute
Dann finds rausthaden hat geschrieben: Mi 5. Aug 2020, 14:06 Bugreport... ich weiß ja nicht mal, ob das Problem beim Stream oder beim Richmemo liegt.

1. du kannst einfach so n string in einen memorystream schreiben und wieder lesen und testen ob es funktioniert
2. du kannst den text vom richmemo in den memory stream schreiben lassen und als string rauslesen lassen und schauen obs funktioniert
3. du kannst nen string in den memorystream schreiben und mit dem richmemo auslesen lassen und schauen obs funktioniert
4. du könntest mal schauen obs am widgetset liegt, denn anscheinend funktioniert es mit windows forms bei mir und bei pluto unter einem noch unbekannten ws auch. Du solltest das ganze also auch mal auf verschiedenen widgetsets probieren
- Winni
- Beiträge: 1577
- Registriert: Mo 2. Mär 2009, 16:45
- OS, Lazarus, FPC: Laz2.2.2, fpc 3.2.2
- CPU-Target: 64Bit
- Wohnort: Fast Dänemark
Re: RichMemo und (Memory-)Stream und ...Umlaute
thaden hat geschrieben: Mi 5. Aug 2020, 14:06 - aber leider benötige ich den nicht, um auf die Festplatte zu schreiben, sondern um den Inhalt von RichMemos schnell austauschen und wiederherstellen zu können.
Hi!
Hast Du es wirklich so eilig????
Meine Lösung mit
Code: Alles auswählen
RichMemo1.Lines.SaveToFile('./test');
RichMemo2.Lines.LoadFromFile('./test');
Da Du Lehrer bist, darfst Du Dir selbst ausrechnen, wieviel Sekunden das sind.
Wir leben hier nicht mehr 1980 mit IDE-Platten ohne Cache!
Immer diese Hetze.
Winni
-
- Beiträge: 2118
- Registriert: Di 23. Sep 2014, 17:46
- OS, Lazarus, FPC: Win10 | Linux
- CPU-Target: x86_64
Re: RichMemo und (Memory-)Stream und ...Umlaute
Man sollte aber wenigstens ein Temporäres verzeichnis anlegen, damit man nicht die platte mit dateien zumüllt. Dann liegt die datei sogar auch (wahrscheinlich, kommt aufs os an) im ram und die zugriffszeiten sind nicht viel schlechter als die von nem memorystreamWinni hat geschrieben: Mi 5. Aug 2020, 14:33 Wir leben hier nicht mehr 1980 mit IDE-Platten ohne Cache!
Immer diese Hetze.
Winni
-
- Beiträge: 16
- Registriert: Mi 15. Aug 2012, 10:14
- OS, Lazarus, FPC: Debian unstable, Lazarus 2.0.8+dfsg-1, fpc-3.0.4
- CPU-Target: AMD64
- Wohnort: Aachen
Re: RichMemo und (Memory-)Stream und ...Umlaute
Es geht um ca. 25 Stundenplände mit je 6 x 14 Stunden, also 25x6x14=2100 Streams (oder halt Dateien). Das scheint mir etwas viel des Guten, wenn auch möglicherweise selbst das kein Zeitproblem wäre.
-
- Beiträge: 16
- Registriert: Mi 15. Aug 2012, 10:14
- OS, Lazarus, FPC: Debian unstable, Lazarus 2.0.8+dfsg-1, fpc-3.0.4
- CPU-Target: AMD64
- Wohnort: Aachen
Re: RichMemo und (Memory-)Stream und ...Umlaute
Ich habe die Variante mit den Dateien gerade ausprobiert - sie funktioniert, aber sie speichert nicht die Formatierungen, auf die es mir ja gerade ankommt.
-
- Beiträge: 2118
- Registriert: Di 23. Sep 2014, 17:46
- OS, Lazarus, FPC: Win10 | Linux
- CPU-Target: x86_64
Re: RichMemo und (Memory-)Stream und ...Umlaute
Mal ne ganz dumme Frage, warum benutzt dur dafür überhaupt Richmemos?
Wenn ich mich an meine Schulzeit zurückerinnere waren Stundenpläne immer in Tabellenform, wäre eine Tabulare Komponente (z.B. StringGrid) nicht da deutlich besser geeignet?
Wenn ich mich an meine Schulzeit zurückerinnere waren Stundenpläne immer in Tabellenform, wäre eine Tabulare Komponente (z.B. StringGrid) nicht da deutlich besser geeignet?
-
- Beiträge: 16
- Registriert: Mi 15. Aug 2012, 10:14
- OS, Lazarus, FPC: Debian unstable, Lazarus 2.0.8+dfsg-1, fpc-3.0.4
- CPU-Target: AMD64
- Wohnort: Aachen
Re: RichMemo und (Memory-)Stream und ...Umlaute
Es sind in der Tat Tabellen, und ich hatte eine ältere Version auch mal mit einem StringGrid angefangen und bin dann auf Memos und jetzt RichMemos umgestiegen. Ich glaube, an den StringGrids störte außer der fehlenden Formatierung auch der schwierigere Umgang mit Mehrzeilern.
-
- Lazarusforum e. V.
- Beiträge: 7192
- Registriert: So 19. Nov 2006, 12:06
- OS, Lazarus, FPC: Linux Mint 19.3
- CPU-Target: AMD
- Wohnort: Oldenburg(Oldenburg)
Re: RichMemo und (Memory-)Stream und ...Umlaute
Ich würde sie "einfach" nach HTML und CSS Exportieren und mit einem Browser deiner Wahl ausdrucken lassen.
Das ist das einfachste. Für HTML und einfachstes CSS könntest du das HTML Panel nutzen...
Es gebe da, nach das KMemo, aber ich meine, dass kann keine Tabellen.
Das ist das einfachste. Für HTML und einfachstes CSS könntest du das HTML Panel nutzen...
Es gebe da, nach das KMemo, aber ich meine, dass kann keine Tabellen.
MFG
Michael Springwald
Michael Springwald