AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

RTF Text ersetzen

Ein Thema von Gruber_Hans_12345 · begonnen am 21. Mär 2005 · letzter Beitrag vom 21. Mär 2005
Antwort Antwort
Gruber_Hans_12345

Registriert seit: 14. Aug 2004
1.426 Beiträge
 
Delphi 2007 Professional
 
#1

RTF Text ersetzen

  Alt 21. Mär 2005, 08:37
Ich möchte gerne in einem RTF Text einen bestimmten Text ersetzen.
im RTF Text habe ich verschiedene Texte (sind wischen zwei &), die durch einen anderen Text ersetzt werden sollen.
Da in dem RTF auch Formatierungen verwendet werden (und theoretisch auch die Foramtierung einer solchen Variabel innerhalb der variabel geändert werden kann), ist es sehr schwer den Text im RTF Text zu finden.
Bis jetzt verwenden ich immer ein Richedit dazu, aber eigentlich m,öchte ich es ohne VCL Komponente ersetzen.
Hat jemand eine Ahnung wie mann da am besten vorgehen soll/kann, ohne sich in die ganze Doku vom Richtext einlesen zu müssen ?
Gruss Hans

2B or not 2B, that is FF
  Mit Zitat antworten Zitat
Benutzerbild von Lannes
Lannes

Registriert seit: 30. Jan 2005
Ort: Münster
745 Beiträge
 
Delphi 3 Professional
 
#2

Re: RTF Text ersetzen

  Alt 21. Mär 2005, 09:51
Um etwas dazu sagen zu können, wäre eine Beispiel oder Ausschnitt nicht schlecht.
Frage = ist das "&" als "&" oder als Hex-Codierung \'26 in der rtf enthalten.
Habe ich das mit der Formatierung der Variablen richtig verstanden?
so? &Var\b iable\b0 &
oder so? &Var{\b iable}&

Also ich würde bei Deiner bisherigen Methode bleiben.
Die Dokumentation zum RTF-Format ist wirklich sehr umfangreich!

MfG Lannes
MfG Lannes
(Nichts ist nicht Nichts) and ('' <> nil ) and (Pointer('') = nil ) and (@('') <> nil )
  Mit Zitat antworten Zitat
Gruber_Hans_12345

Registriert seit: 14. Aug 2004
1.426 Beiträge
 
Delphi 2007 Professional
 
#3

Re: RTF Text ersetzen

  Alt 21. Mär 2005, 10:31
z.B.:
RTF : bis\b zum &Tex\b0 t_1& be

PlainText : bis zum &Text_1& be

das Problem ist, das dem Richedit nicht sagen kann (beim Eingeben) das für die ganze Variable nur ein Format verwendet werden darf. Denn nach dem Ersetzen der Variable kann es sowieso nur eine Formatierung für die Variabel geben, aber zum scuhen im RTF ist es so natürlich problematisch.

Die bisherige Methode hat halt immer das Problem, das ich ein nicht sichtbares RichEdit erzeugen muß. Das dauert viel länger als wenn ich nur den Text ersetzen würde, und es gibt auch unschöne Flacker effekete (Bei mir zumindest)

Darum möchte ich es anders lösen.
Gruss Hans

2B or not 2B, that is FF
  Mit Zitat antworten Zitat
Benutzerbild von Lannes
Lannes

Registriert seit: 30. Jan 2005
Ort: Münster
745 Beiträge
 
Delphi 3 Professional
 
#4

Re: RTF Text ersetzen

  Alt 21. Mär 2005, 19:07
Hallo,

Grundsätzliches zum Format:

Beginn Kontrollwort mit Backslash (\)

darauf folgen a-z (min 1)

Ende Kontrollwort durch:
- Leerzeichen (nur das erste, alle weiteren sind Plaintext)
- Zahlen, positiv oder negativ z.b -245 (ist dann der Wert des Kontrollwortes)
- jedes andere Zeichen, das kein Buchstabe ist
- #10 und #13

Ein Beispiel:
"x\b xxx\b0 xx" ist gleich mit "x\b xxx\b0xx"
wobei es "x\bxxx\b0 xx" nicht geben sollte,
weil "\bxxx" als Kontrollwort gedeutet würde.
Da "\bxxx" kein gültiges Kontrollwort ist wird es überlesen.
Aus "x\bxxx\b0 xx" wird im Plaintext "x xx"

folgt direkt nach "\" ein Zeichen <> a-z dann:
z.B.
Hex-Codierung \'26 ist das zeichen "&"
\\und\{und\} wäre im Plaintext "\und{und}
Steuerzeichen \| \~ \- \_ \: \* (mehr sind mir nicht bekannt)

Plaintext filtern: (nur mal so aufgeschrieben)

Zeichen "&" suchen
> Zeichen = "\" dann Flag setzen
> Zeichen <> "\" und Flag nicht gesetzt, dann > Plaintext
> Zeichen <> "\" und Flag gesetzt, dann Ende Kontrollwort suchen
...
Dann bleiben noch Fragen
- Zeichen "&" nur im Zusammenhang mit Variablen?
- RTF-Format wird unterschiedlich geschrieben, Erstellungsprogramm immer das selbe(gleiche Version)?

Viel Spass beim , ich hoffe das es Dir erstmal weiter hilft

MfG Lannes
MfG Lannes
(Nichts ist nicht Nichts) and ('' <> nil ) and (Pointer('') = nil ) and (@('') <> nil )
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:08 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