Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Wie RTF aus Text entfernen / konvertieren? (https://www.delphipraxis.net/38279-wie-rtf-aus-text-entfernen-konvertieren.html)

Nuclear-Ping 17. Jan 2005 01:27


Wie RTF aus Text entfernen / konvertieren?
 
Hallo,

ich habe eine Datenbank mit vielen vielen Texten drin bekommen, die allerdings im RTF-Style sind. Leider kann ich und das Zielprogramm damit nichts anfangen und ich suche nun nach Möglichkeiten, das RTF aus dem Text zu entfernen, bzw. zu konvertieren. Also aus ...

Code:
{\rtf1\ansi\deff0{\fonttbl{\f0\froman\fprq2\fcharset0 Times New Roman;}}
\viewkind4\uc1\pard\qj\lang2057\f0\fs24 The ascendant is the sign of the zodiac which was rising above the horizon line at the time of your birth. Therefore, it is also called the \ldblquote rising sign\rdblquote . It is placed in the first house of the horoscope, which is the beginning of the celestial cycle. The first house represents the self. By understanding the nature of your ascendant, you will gain a deep insight into your own character.
\par ...
... mach ...

Code:
The ascendant is the sign of the zodiac which was rising above the horizon line at the time of your birth. Therefore, it is also called the "rising sign". It is placed in the first house of the horoscope, which is the beginning of the celestial cycle. The first house represents the self. By understanding the nature of your ascendant, you will gain a deep insight into your own character.
Kann mir da jemand beistehen? Leider kenn ich die ganzen RTF-Codes nicht, sonst hätte ich schon sowas wie einen Filter gebastelt. Bin für alle Tips dankbar! :)

Grüße,
Mario

Luckie 17. Jan 2005 01:32

Re: Wie RTF aus Text entfernen / konvertieren?
 
Quick and dirty: In ein TRichEdit laden und als PlainText speichern.

Nuclear-Ping 17. Jan 2005 14:31

Re: Wie RTF aus Text entfernen / konvertieren?
 
Ahoi! :)

Stimmt, in die Richtung hab ich auch schon gedacht. Allerdings bin ich auf noch keinen grünen Zweig gekommen, als ich darüber nachdachte, wie man das am besten automatisieren könnte. Die Datenbank wird über die Datensteuerungskomponenten (DBGrid, DBRichEdit, DBNavigator, etc.) angesprochen und ich bin da kein wirklicher Crack drin. Bin froh, dass ich das so zum Laufen gebracht hab, dass ich Einträge aus Tabellen auswählen und bearbeiten kann. *g*

Noch eine Idee / Vorschlag?

Grüße,
Mario

Luckie 17. Jan 2005 14:36

Re: Wie RTF aus Text entfernen / konvertieren?
 
Delphi-Quellcode:
procedure RTF2PlainText(RE: TRichEdit; const InFile, OutFile: String);
begin
  RE.PlainText := False;
  RE.Lines.LoadFromFile(InFile);
  RE.PlainText := True;
  RE.Lines.SaveToFile(OutFile);
end;
So mal aus dem Kopf ohne IDE.

arbu man 17. Jan 2005 14:45

Re: Wie RTF aus Text entfernen / konvertieren?
 
Delphi-Quellcode:
stringlist.addstrings(richedit1.lines)
stringlist.savetofile('datei.txt')
sollte eigentlich funktionieren

Luckie 17. Jan 2005 14:47

Re: Wie RTF aus Text entfernen / konvertieren?
 
Zitat:

Zitat von arbu man
Delphi-Quellcode:
stringlist.addstrings(richedit1.lines)
stringlist.savetofile('datei.txt')
sollte eigentlich funktionieren

Warum über ein zweites Objekt gehen?

arbu man 17. Jan 2005 14:58

Re: Wie RTF aus Text entfernen / konvertieren?
 
weiss nicht, es ist nur eine andere möglichkeit

Nuclear-Ping 17. Jan 2005 14:59

Re: Wie RTF aus Text entfernen / konvertieren?
 
Vielen Dank.

Aber wie schon gesagt: Die ganzen etlichen Texte befinden sich in einer Advantage-Datenbank, die ich entweder über SQL oder über die DBxyz-Komponenten ansteuern kann. Mit RE.LoadFromFile und RE.SaveToFile kann ich da nichts anfangen, ohne, dass ich eine Woche oder länger jeden Tag dran sitze und die Texte dann wieder manuell in die Datenbank einfüge.

Wenn es eine Möglichkeit wie folgender Pseudo-Code gäbe, wäre ich sehr froh:
Code:
procedure TForm1.DBRichTextToPlainText;
var
  a: Integer;
begin
  for a := 0 to Table.RowCount - 1 do
    with DBRichEdit do
      begin
        PlainText := FALSE;
        LoadTextFromDB (Row, Col);
        PlainText := TRUE;
        SaveTextToDB (Row, Col);
    end;
end;
Grüße,
Mario


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:21 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz