AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Format eines DBRichEdit(Textes) speichern und laden
Thema durchsuchen
Ansicht
Themen-Optionen

Format eines DBRichEdit(Textes) speichern und laden

Ein Thema von beanbear6 · begonnen am 9. Feb 2015 · letzter Beitrag vom 12. Mär 2015
Antwort Antwort
Seite 1 von 2  1 2      
beanbear6

Registriert seit: 28. Okt 2009
Ort: Passau
170 Beiträge
 
Delphi 7 Enterprise
 
#1

Format eines DBRichEdit(Textes) speichern und laden

  Alt 9. Feb 2015, 05:23
Datenbank: Paradox • Version: 7 • Zugriff über: BDE
Hi zusammen,
ich hab ein DBRichEdit mit einem (Paradox-Feldtyp F) formatierten Memo verbunden.
Im Quellcode schreibe ich folgendes:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
  with DBRichEdit1.SelAttributes do
  If Style = [fsBold] then Style := [] else Style := [fsBold];
end;
Der markierte Text wird auch in fett dann gezeigt. Nur nach dem Speichern und wieder Laden des Textes in das DBRichEdit ist der Text wieder nicht formatiert. Kann mir jemand helfen und mir sagen, was ich falsch mache oder wie ich sowas lösen kannn?
Ich danke Euch für jeden Tip..
beanbear6
Reiner
  Mit Zitat antworten Zitat
Benutzerbild von baumina
baumina

Registriert seit: 5. Mai 2008
Ort: Oberschwaben
1.275 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: Format eines DBRichEdit(Textes) speichern und laden

  Alt 9. Feb 2015, 08:07
Wahrscheinlich wirst du RTF nur in einem BLOB-Feld speichern können.
Hinter dir gehts abwärts und vor dir steil bergauf ! (Wolfgang Ambros)
  Mit Zitat antworten Zitat
Perlsau
(Gast)

n/a Beiträge
 
#3

AW: Format eines DBRichEdit(Textes) speichern und laden

  Alt 9. Feb 2015, 08:10
Zwar habe ich nie mit Paradox oder der BDE gearbeitet, doch kann ich dir sagen, daß man RichEdit-Inhalte am besten in einem binären Feld speichert. Das bedeutet, man wählt kein Feld, das Text aufnimmt, sondern – in der Sprache modernerer Datenbanken – ein binäres Blobfeld. Dann ist nämlich garantiert, daß der Stream der DBRichEdit-Komponente unverändert im Blobfeld ankommt und ebenso unverändert daraus wieder gelesen werden kann. Bei Datenbank-Textfeldern (Memo, VarChar) besteht dagegen die Gefahr, daß Steuerzeichen, die ja im RichText vorkommen, falsch interpretiert werden.
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#4

AW: Format eines DBRichEdit(Textes) speichern und laden

  Alt 9. Feb 2015, 11:45
Naja die RTF-Rohdaten sollte man durchaus ineinem Varchar/Char/Text/Memo-Feld speichern können:
Code:
{\rtf1\ansi\ansicpg1252\uc1 \deff0\deflang1033\deflangfe1031{\fonttbl{\f0\froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\f2\fmodern\fcharset0\fprq1{\*\panose 02070309020205020404}Courier New;}....
Da wird nicht gezaubert und es ist mit dem ordinären Notepad lesbar. man muß sich nur durch die verschiedenen Begrifflichkeiten durchfinden, um zu erreichen was man will. Irgendwo sollte jede RichText-Komponente auch den Zugriff auf den "SourceCode" ermöglichen, und der kann ganz problemlos als Text gespeichert werden.

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: Format eines DBRichEdit(Textes) speichern und laden

  Alt 9. Feb 2015, 11:47
Es ist nur die Frage, was der DBRichText in die Tabelle ablegt. Es scheint so, ob nur der reine Text gespeichert wird.
Markus Kinzler
  Mit Zitat antworten Zitat
Perlsau
(Gast)

n/a Beiträge
 
#6

AW: Format eines DBRichEdit(Textes) speichern und laden

  Alt 9. Feb 2015, 13:11
Naja die RTF-Rohdaten sollte man durchaus ineinem Varchar/Char/Text/Memo-Feld speichern können:
Code:
{\rtf1\ansi\ansicpg1252\uc1 \deff0\deflang1033\deflangfe1031{\fonttbl{\f0\froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\f2\fmodern\fcharset0\fprq1{\*\panose 02070309020205020404}Courier New;}....
Da wird nicht gezaubert und es ist mit dem ordinären Notepad lesbar. man muß sich nur durch die verschiedenen Begrifflichkeiten durchfinden, um zu erreichen was man will. Irgendwo sollte jede RichText-Komponente auch den Zugriff auf den "SourceCode" ermöglichen, und der kann ganz problemlos als Text gespeichert werden.
Grundsätzlich ist das nicht falsch oder klingt zumindest logisch nachvollziehbar. Dennoch habe ich die Erfahrung gemacht, daß RTF-Inhalte – insbesondere ab Delphi 2009, wo ja die Unicode-Unterstützung begann – in Textfeldern – auch z.B. bei Firebird's Blobfeld im Textmodus – nicht immer korrekt gespeichert werden, in Binärfeldern dagegen schon, und zwar ausnahmslos. Ich kann dir auch nicht genau sagen, weshalb das so ist, aber ich kann dir versichern, daß es so ist.

Zudem mache vermutlich nicht nur ich von der Möglichkeit Gebrauch, in RichEdit-Komponenten auch Grafiken zu speichern, was die Wahl eines Binärfeldes als zwingend erscheinen läßt. Bei Memo-Komponenten wie TDBMemo z.B. genügt ein Textfeld, da gibts keine Formatierungen und man kann da auch keine Bilder einbinden.

Wenn du mal die Forensuche bemühst, wirst du etlichen Usern begegnen, die große Schwierigkeiten dabei hatten, RTF-Inhalte in Textfeldern zu speichern, diese Probleme aber nicht mehr auftraten, nachdem sie ein Binärfeld gewählt hatten. Deshalb ist das immer auch mein erster Ratschlag bei diesem speziellen Problem.


Es ist nur die Frage, was der DBRichText in die Tabelle ablegt. Es scheint so, ob nur der reine Text gespeichert wird.
Scheint mir auch so ... Allerdings habe ich schon lange nicht mehr probiert, RTF-Inhalte in Textfeldern zu speichern
  Mit Zitat antworten Zitat
beanbear6

Registriert seit: 28. Okt 2009
Ort: Passau
170 Beiträge
 
Delphi 7 Enterprise
 
#7

AW: Format eines DBRichEdit(Textes) speichern und laden

  Alt 9. Feb 2015, 14:11
Hallo zusammen,
gleich mal vielen Dank für Eure Mühe. Wie aber versteh ich das mit dem Blob-Feld? Is dan für z.B. Paradox ein OLE-Feld? Ich hab da leider viel zu wenig Erfahrung damit. Ich weis schon, dass man das Ganze auch als .rtf als Datei ablegen könnte, aber ich brauch das unbedingt in einer Datenbank. Bitte helft mir mit diesem Blobfeld...
Vielen Dank an alle!!
Reiner
  Mit Zitat antworten Zitat
Perlsau
(Gast)

n/a Beiträge
 
#8

AW: Format eines DBRichEdit(Textes) speichern und laden

  Alt 9. Feb 2015, 15:03
Welche Blob-Typen gibt es denn überhaupt in Paradox? Soweit ich eben kurz recherchieren konnte, gibt es z.B. die Typen Blob Memo und Blob Graphic. Ich würde dir empfehlen, mit diesen Feldern zu experimentieren, um herauszufinden, welches den Inhalt deiner TDBRichEdit-Komponente korrekt speichert.

Womit bearbeitest du eigentlich deine Tabellen-Strukturen in deiner Paradox-Datenbank; welchen Datenbank-Manager setzt du ein?

Hier im Forum ist auch einiges zu diesem Thema zu finden:

Geändert von Perlsau ( 9. Feb 2015 um 15:15 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von ATS3788
ATS3788

Registriert seit: 18. Mär 2004
Ort: Kriftel
646 Beiträge
 
Delphi XE Starter
 
#9

AW: Format eines DBRichEdit(Textes) speichern und laden

  Alt 9. Feb 2015, 16:58
Hatte vor kurzen ein ähnliches Problem Perlsau hatte
mir geholfen Binär Blob ist
die Antwort.
Martin MIchael
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#10

AW: Format eines DBRichEdit(Textes) speichern und laden

  Alt 9. Feb 2015, 20:55
Binär muß nicht unbedingt sein, denn die Prüfung geht nur auf Delphi-Referenz durchsuchenTField.IsBlob, welches auch gut und gern ein TEXT sein könnte.

TStringField oder PlainText=True -> Text
TBlobField/TMemoField und PlainText=False -> RichText
$2B or not $2B
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 13:56 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