*.DOC Import nach TDBMemo

Für alles, was in den übrigen Lazarusthemen keinen Platz, aber mit Lazarus zutun hat.
Antworten
Lorca
Beiträge: 196
Registriert: Di 3. Nov 2020, 12:25

*.DOC Import nach TDBMemo

Beitrag von Lorca »

Hallo zusammen, :)

wie kann man eine Word "xxx.DOC" Datei in ein TDBMemo Feld importieren. (Es handelt sich NICHT um DOCX)

Es soll der Open Dialog geöffnet, dann eine xxx.DOC Datei ausgewählt werden und danach (OpenDialog.Execute = True ) in ein TDBMemofeld geladen werden.

Derzeit mache ich das über InfoFeld.Lines.LoadFromFile( OpenDialog.FileName );
Hier stehen dann jedoch nur Sonderzeichen -> ??ࡱ?

Wird die gewünschte Datei xxx.DOC in eine Textdatei (.TXT) konvertiert werden die Umlaute (alles größer 128 ) nicht sauber dargestellt.
z.B. "Der Sänger" wird zu "Der S?nger"

Auch andere Konvertierungen (z.B. .RTF ) aus der .DOC Datei heraus gehen auf die Bretter, wenn diese in das TDBMemo Feld eingeladen werden sollen.

Kennt jemand hierzu eine Lösung des Problems?
Am besten währe ein Import direkt aus der Word Datei (.DOC) also OHNE eine vorherige Konvertierung.

Viele Grüße
Lorca

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

Re: *.DOC Import nach TDBMemo

Beitrag von theo »

Lorca hat geschrieben:
So 26. Feb 2023, 19:15
Wird die gewünschte Datei xxx.DOC in eine Textdatei (.TXT) konvertiert werden die Umlaute (alles größer 128 ) nicht sauber dargestellt.
Womit konvertierst du das?

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6209
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Burgenland
Kontaktdaten:

Re: *.DOC Import nach TDBMemo

Beitrag von af0815 »

Zusätzlich zu dem was Theo fragt. MS codiert im meisten im Windows 1252 Format und nicht unter UTF-8. Da braucht man dann ein encodeing wie CP1250ToUTF8(xxx) aus der unit lconvencoding oder so ähnlich. Aber da bin ich kein Spezialist. :oops:
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

Joh
Lazarusforum e. V.
Beiträge: 186
Registriert: Sa 26. Mai 2012, 17:31
OS, Lazarus, FPC: Win 10 (L 2.2.6 x64 FPC 3.2.2)
CPU-Target: 64Bit

Re: *.DOC Import nach TDBMemo

Beitrag von Joh »

wie wäre es mit Office-Automation?

https://wiki.freepascal.org/Office_Automation/de
geht auch mit LibreOffice, also womöglich Betriebssystemunabhängig.

Wenn du die Formatierungen brauchst:
Darin ein copyToClipboard und den formatierten String einlesen.
just my two Beer

Lorca
Beiträge: 196
Registriert: Di 3. Nov 2020, 12:25

Re: *.DOC Import nach TDBMemo

Beitrag von Lorca »

Hallo zusammen, :)

ein Bagger hatte die I-Net Leitungen gekappt. Die ganze Siedlung war ohne I-Net und ohne Telefon. Daher erst jetzt meine Antwort.

Danke für eure Hinweise. Mit der Funktion: CP1252ToUTF8 klappt es nun (UNIT: LConvEncoding ).
Es muss das Dokument leider erst als eine Text Datei gespeichert werden.
@theo: Ich hatte zuvor keine Konvertierung vorgenommen. Also einfach die Datei aus OpenDialog.FileName über die Stringlist eingelesen und dann in das Memo Feld gestellt.
@af0815: Dein Hinweis mit dem Format 1252 hatte mich dann weiter gebracht. :)
@Joh: OLE Container kann ich nicht nutzen da ich außer Windows-10 nix von MS habe.

Nochmals meinen herzlichen Dank an euch alle

Gruß
Lorca

Benutzeravatar
six1
Beiträge: 788
Registriert: Do 1. Jul 2010, 19:01

Re: *.DOC Import nach TDBMemo

Beitrag von six1 »

wie Joh schrieb....

LibreOffice ist nicht von MS 8)
Gruß, Michael

Antworten