TMemo SaveToFile [gelöst]

Für Fragen von Einsteigern und Programmieranfängern...
Antworten
Ralf
Beiträge: 65
Registriert: Mi 29. Jan 2014, 18:31
OS, Lazarus, FPC: Ubuntu 20.04 LTS (L 2.0.6 FPC 3.3.1)
CPU-Target: 64Bit

TMemo SaveToFile [gelöst]

Beitrag von Ralf »

Hallo,

ich habe mit einem TMemo eine kleine HTML-Datei (Email-Signatur-Vorlage) verändert und möchte sie dann speichern.
Wenn ich den Inhalt vom TMemo mit Strg-C in einem externen Editor (NotePad++) kopiere und dort speichere, dann entspricht das Ergebnis den Erwartungen.
Speichere ich hingegen das TMemo mit SaveToFile, dann ist das Ergebnis "kaputt".

Woran mag das liegen?

Hier mal das kopierte Ergebnis (korrekte Darstellung):

Code: Alles auswählen

<style type="text/css">* { font-size: 12px;font-family: "Helvetica Neue", Helvetica, Arial, sans;color: #3c3c3c;line-height: 1.35em;}strong {font-weight: bold;}.red {color: #e63246;}.big {font-size: 1.2em;}.small {font-size: 0.9em;}table {border: none;padding: 0;margin: 0;}td {vertical-align: middle;line-height: 1em}p {padding-bottom: 5px;}.social {padding-left: 5px;}hr {border:none;background-color: #e63246;height: 3px;max-width: 444px;margin: 0;}</style>
<span>
<p>
<span class="big">Ralli</span><br />

Technik
</p>
<p>
<span class="red">SUMMACOM GmbH & Co. KG</span><br />
Kastanienweg 11-13<br />
66386 St. Ingbert
<p><table >
	<tr><td>Telefon:</td><td>+49 (0) 6894 - 145 xxxx</td></tr>
	<tr><td>Telefax:</td><td>+49 (0) 6894 - 145 4 xxxx</td></tr>
</table>
</p><p><table><tr><td>E-Mail:</td><td><a href="mailto:ralli@summacom.de">ralli@summacom.de</a></td></tr><tr><td>Internet:</td><td><a href="https://www.summacom.de">www.summacom.de</a></td></tr><tr><td>Social:</td><td><a href="https://www.facebook.com/summacom/"><img src="assets/fb_logo.png"></a><a class="social" href="https://www.instagram.com/summacom/"><img src="assets/instagram_logo.png"></a></td></tr></table></p><p><a href="http://www.summacom.de"><img src="assets/summ_logo.png"></a></p><p class="small"><span class="red">SUMMACOM</span> GmbH & Co. KG<br />Amtsgericht Saarbr?cken HRA 10072</p><p class="small">Gesch&aumlftsf&uumlhrer: Martin Schimpf<br />Pers&oumlnlich haftende Gesellschafterin: Sparda-Telefonservice Verwaltung GmbH<br />Amtsgericht Saarbr&uumlcken HRB 16010</p><p class="small">Diese E-Mail enth&aumllt vertrauliche und/oder rechtlich gesch&uumltzte Informationen.<br />Wenn Sie nicht der richtige Adressat sind oder diese E-Mail irrt&uumlmlich erhalten haben,<br />informieren Sie bitte sofort den Absender und vernichten Sie diese E-Mail.<br />Das unerlaubte Kopieren und die unbefugte Weitergabe dieser E-Mail sind nicht gestattet. </p><p class="small">This e-mail may contain confidential and/or privileged information.<br />If you are not the intended recipient or have received this e-mail in error please notify<br /> the sender immediately and delete this e-mail. Any unauthorized copying, disclosure or<br /> distribution of the material in this e-mail is strictly forbidden. </p></span>

Und hier das Ergebnis mit SaveToFile gespeichert (kaputt):

Code: Alles auswählen

<style type="text/css">* { font-size: 12px;font-family: 
"Helvetica Neue", Helvetica, Arial, sans;color: 
#3c3c3c;line-height: 1.35em;}strong {font-weight: 
bold;}.red {color: #e63246;}.big {font-size: 1.2em;}.small 
{font-size: 0.9em;}table {border: none;padding: 
0;margin: 0;}td {vertical-align: middle;line-height: 
1em}p {padding-bottom: 5px;}.social {padding-left: 
5px;}hr {border:none;background-color: 
#e63246;height: 3px;max-width: 444px;margin: 0;}
</style>
<span>
<p>
<span class="big">Ralli</span><br />

Technik
</p>
<p>
<span class="red">SUMMACOM GmbH & Co. 
KG</span><br />
Kastanienweg 11-13<br />
66386 St. Ingbert
<p><table >
	<tr><td>Telefon:</td><td>+49 (0) 6894 - 
145 xxxx</td></tr>
	<tr><td>Telefax:</td><td>+49 (0) 6894 - 
145 4 xxxx</td></tr>
</table>
</p><p><table><tr><td>E-Mail:</td><td><a 
href="mailto:ralli@summacom.de">ralli@summacom.
de</a></td></tr><tr><td>Internet:</td><td><a 
href="https://www.summacom.de">www.summacom
.de</a></td></tr><tr><td>Social:</td><td><a 
href="https://www.facebook.com/summacom/"><im
g src="assets/fb_logo.png"></a><a class="social" 
href="https://www.instagram.com/summacom/"><i
mg 
src="assets/instagram_logo.png"></a></td></tr></t
able></p><p><a 
href="http://www.summacom.de"><img 
src="assets/summ_logo.png"></a></p><p 
class="small"><span 
class="red">SUMMACOM</span> GmbH & Co. 
KG<br />Amtsgericht Saarbr?cken HRA 10072</p><p 
class="small">Gesch&aumlftsf&uumlhrer: Martin 
Schimpf<br />Pers&oumlnlich haftende 
Gesellschafterin: Sparda-Telefonservice Verwaltung 
GmbH<br />Amtsgericht Saarbr&uumlcken HRB 
16010</p><p class="small">Diese E-Mail enth&aumllt 
vertrauliche und/oder rechtlich gesch&uumltzte 
Informationen.<br />Wenn Sie nicht der richtige 
Adressat sind oder diese E-Mail irrt&uumlmlich 
erhalten haben,<br />informieren Sie bitte sofort den 
Absender und vernichten Sie diese E-Mail.<br />Das 
unerlaubte Kopieren und die unbefugte Weitergabe 
dieser E-Mail sind nicht gestattet. </p><p 
class="small">This e-mail may contain confidential 
and/or privileged information.<br />If you are not the 
intended recipient or have received this e-mail in error 
please notify<br /> the sender immediately and delete 
this e-mail. Any unauthorized copying, disclosure 
or<br /> distribution of the material in this e-mail is 
strictly forbidden. </p></span>
Es scheint so, als wenn die Funktion irgendwas eigenständig da rein interpretiert und den HTML-Code selbstständig neu formatiert.....

Irgendwelche Ideen?
Danke fürs Feedback.

VG,
Ralf
Zuletzt geändert von Ralf am Mi 9. Feb 2022, 16:06, insgesamt 3-mal geändert.
Kubuntu 20.04 LTS

Benutzeravatar
theo
Beiträge: 10468
Registriert: Mo 11. Sep 2006, 19:01

Re: TMemo SaveToFile

Beitrag von theo »

Naja, "kaputt" ist es nicht, es ist einfach umgebrochen.
Versucht mal WordWrap auf false zu setzen.

Ralf
Beiträge: 65
Registriert: Mi 29. Jan 2014, 18:31
OS, Lazarus, FPC: Ubuntu 20.04 LTS (L 2.0.6 FPC 3.3.1)
CPU-Target: 64Bit

Re: TMemo SaveToFile [gelöst]

Beitrag von Ralf »

Hallo Theo,

vielen Dank, das war's.
Du bist mein Held. :D

Viele Grüße,
Ralf
Zuletzt geändert von Ralf am Mi 9. Feb 2022, 16:06, insgesamt 1-mal geändert.
Kubuntu 20.04 LTS

Ralf
Beiträge: 65
Registriert: Mi 29. Jan 2014, 18:31
OS, Lazarus, FPC: Ubuntu 20.04 LTS (L 2.0.6 FPC 3.3.1)
CPU-Target: 64Bit

Re: TMemo SaveToFile und Umlaute.... [gelöst]

Beitrag von Ralf »

Bin doch noch nicht am Ziel :(

Ich verstehe nicht mein Umlautproblem...

Wenn ich über die Tedit-Felder Texte mit Umlauten schreibe und diese dann im Tmemo schreibe und nachher mit SaveToFile speichere, dann wird das Ergebnis scheinbar korrekt angezeigt....(Notepad++) https://photos.app.goo.gl/eL5oJom7XdXdGbwM9

Der Browser (Lotus Notes auch)zeigt es jedoch falsch an (1. Screenshot)..

Jetzt ist mir klar, dass im HTML normalerweise Umlaute maskiert werden , jedoch haben wir ewig mit einem Texteditor auch Umlaute einfach geschrieben, welche dann korrekt dargestellt wurden / werden (siehe Screenshot 3 + 4).

Ich möchte daher jetzt mit dem TMemo so speichern können, wie es der einfache Notepad (Windows 10) default auch tut.
Erwarte ich zuviel und ist es jetzt eine Konvertierungsorgie welche mir bevorsteht? :(

Wäre schön wenn mir noch mal wer einen Stupps geben könnte :-)
Zuletzt geändert von Ralf am Mi 9. Feb 2022, 16:05, insgesamt 1-mal geändert.
Kubuntu 20.04 LTS

Benutzeravatar
fliegermichl
Lazarusforum e. V.
Beiträge: 1432
Registriert: Do 9. Jun 2011, 09:42
OS, Lazarus, FPC: Lazarus Fixes FPC Stable
CPU-Target: 32/64Bit
Wohnort: Echzell

Re: TMemo SaveToFile

Beitrag von fliegermichl »

Das hängt mit dem Zeichensatz zusammen. Lazarus verwendet standardmäßig UTF8. Windows hingegen verwendet den Ansizeichensatz.
Du kannst die Unit lazutf8 einbinden und beim Export den Text durch utf8toansi konvertieren lassen.

Ralf
Beiträge: 65
Registriert: Mi 29. Jan 2014, 18:31
OS, Lazarus, FPC: Ubuntu 20.04 LTS (L 2.0.6 FPC 3.3.1)
CPU-Target: 64Bit

Re: TMemo SaveToFile [gelöst]

Beitrag von Ralf »

Hallo Fliegermichi,

vielen Dank, Du hast mir den Tag gerettet :D

VG,
Ralf
Kubuntu 20.04 LTS

Benutzeravatar
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: TMemo SaveToFile [gelöst]

Beitrag von Winni »

Hi!

Da ist fliegermichel 20 Jahre hinter der Zeit:

Seit Win2000 benutzt Windows Unicode, nämlich UTF16.

Lazarus benutzt intern UTF8 aber konvertiert das automatisch.

Winni

Benutzeravatar
Ally
Beiträge: 263
Registriert: Do 11. Jun 2009, 09:25
OS, Lazarus, FPC: Win und Lazarus Stable release
CPU-Target: x64

Re: TMemo SaveToFile [gelöst]

Beitrag von Ally »

Hallo Ralf,

was mit Windows normalerweise gut funktioniert ist UTF8ToWinCP und WinCPToUTF8.

wp_xyz
Beiträge: 4869
Registriert: Fr 8. Apr 2011, 09:01

Re: TMemo SaveToFile [gelöst]

Beitrag von wp_xyz »

Wenn ein TMemo die Umlaute richtig anzeigt, dann ist der Text UTF8-kodiert, und dann ist auch die von SaveToFile geschriebene Datei UTF8. Ich könnte mir vorstellen, dass dir einfach nicht aufgefallen ist, dass die Umlaute schon in der Ausgangsdatei falsch waren. Wenn einmal eine Konvertierung schief geht und man nicht weiß, wie die Ausgangssituation war und welche Konvertierungen verwendet worden sind, kann man den Text oft nicht mehr retten.

Ralf
Beiträge: 65
Registriert: Mi 29. Jan 2014, 18:31
OS, Lazarus, FPC: Ubuntu 20.04 LTS (L 2.0.6 FPC 3.3.1)
CPU-Target: 64Bit

Re: TMemo SaveToFile [gelöst]

Beitrag von Ralf »

Vielen Dank nochmal an Alle, speziell Ally, Dein UTF8ToWinCP war der Matchwinner :D

Stimmt, das von Fliegermichi klappte dann doch nicht.... Menno... dieser ganze Zeichensatzkram kann ganz schön verwirrend sein....

Doch jetzt scheint das kleine Progrämmchen zu laufen.... ist ja nichts wildes... doch manchmal machen schon so scheinbar einfache Dinge ne Menge trouble...

VG,
Ralf
Kubuntu 20.04 LTS

Antworten