Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Richedit + formatierter Text in DB speichern (https://www.delphipraxis.net/32640-richedit-formatierter-text-db-speichern.html)

Akut-Programming 26. Okt 2004 14:52


Richedit + formatierter Text in DB speichern
 
Hi!!

Ich würde gerne den formatierten Text aus meinem Richedit in meine Datenbank schreiben. Wenn ich es mit "insert... richedit1.text" oder ähnlichen machen, steht wirklich nur der Text da. Ich würde aber gerne, wenn ich mir die Daten wieder aus der DB hole, den Text wieder formatiert angezeigt bekommen. Ist das irgendwie möglich? Welche Eigenschaften muss ich nutzen??

Gruß,
Sascha

Luckie 26. Okt 2004 15:01

Re: Richedit + formatierter Text in DB speichern
 
Eventuell geht es mit einem BlobStream Feld in der DB.

Übrigens ist das hier die falsche Sparte. Es geht um Datenbanken.

Sharky 26. Okt 2004 15:13

Re: Richedit + formatierter Text in DB speichern
 
Hai Sascha,

Du kannst Dir ja mal ansehen wie Borland das beim TDBRichEdit gemacht hat.

Akut-Programming 26. Okt 2004 15:13

Re: Richedit + formatierter Text in DB speichern
 
Danke lukie fürs verschieben!! :thumb: Habs gerade mal mitn Blobfeld versucht, nur da schreibt er auch nur den Text rein. - Ohne Formatierungsinformationen. :gruebel:

Akut-Programming 26. Okt 2004 15:15

Re: Richedit + formatierter Text in DB speichern
 
Zitat:

Zitat von Sharky
Hai Sascha,

Du kannst Dir ja mal ansehen wie Borland das beim TDBRichEdit gemacht hat.

Hai Sharky!! :wink: *blubb*

Das heißt ich muss in den Code der dcu bzw. pas für die Kompo gucken, oder?

Luckie 26. Okt 2004 15:15

Re: Richedit + formatierter Text in DB speichern
 
Man kann doch aich Bilder binär in einer DB speichern und genauso müsste es auch mit einem RichEdit gehen.

Sharky 26. Okt 2004 15:17

Re: Richedit + formatierter Text in DB speichern
 
Zitat:

Zitat von Akut-Programming
....dcu bzw. pas für die Kompo gucken, oder?

Jup,
schaue mal in die DBCtrls.pas ab Zeile 5540.

Akut-Programming 26. Okt 2004 15:18

Re: Richedit + formatierter Text in DB speichern
 
Zitat:

Zitat von Luckie
Man kann doch aich Bilder binär in einer DB speichern und genauso müsste es auch mit einem RichEdit gehen.

Joa, soweit ich weiß, macht das ja das Blobfeld. :gruebel:

Akut-Programming 26. Okt 2004 15:19

Re: Richedit + formatierter Text in DB speichern
 
Zitat:

Zitat von Sharky
Jup,
schaue mal in die DBCtrls.pas ab Zeile 5540.

Dank dir, wersch mich ma durch wurschteln. :mrgreen:

Akut-Programming 27. Okt 2004 13:14

Re: Richedit + formatierter Text in DB speichern
 
Also das speichern habe ich nun schon hinbekommen. Lese ich die Daten aber wieder aus, dann holt er mir den gesamten Text, inklusive Formatierungsinformationen und packt die in mein RichEdit, ohne das der Text Formatiert ist. :gruebel: Hat da jemand evtl. ne Idee, wie das nun geht?

Gruß,
Sascha

UweR 27. Okt 2004 13:38

Re: Richedit + formatierter Text in DB speichern
 
Hallo Sascha,

hast du mal mit der Property PlainText rumgespielt. Da kannst du angeben (zumindest laut Hilfe) ob die Formatierungsfunktionen jetzt beachtet werden oder nicht.

Akut-Programming 27. Okt 2004 13:42

Re: Richedit + formatierter Text in DB speichern
 
Hallo Uwe,

wenn ich die Eigenschaft "PlainText" auf True setze, schreibt er wieder nur noch den eigentlichen Text in das Blobfeld der Tabelle. :gruebel:

UweR 27. Okt 2004 13:53

Re: Richedit + formatierter Text in DB speichern
 
Wenn ich die Hilfe richtig interpretiere würde ich an deiner Stelle mal probieren beim Lesen und Schreiben aus und in die RichEdit-Komponente PlainText mal auf FALSE zu setzen und anschließend wieder auf TRUE. Aber ausprobiert habe ich das selber auch noch nicht.

Akut-Programming 27. Okt 2004 13:58

Re: Richedit + formatierter Text in DB speichern
 
Wenn ich sie beim schreiben auf TRUE setze, dann schreibt er auch nur den eigentlichen Text, ohne Formatierungsinformationen in die Datenbank.

UweR 27. Okt 2004 14:05

Re: Richedit + formatierter Text in DB speichern
 
Zitat:

Wenn ich sie beim schreiben auf TRUE setze, dann schreibt er auch nur den eigentlichen Text, ohne Formatierungsinformationen in die Datenbank.
Deshalb solltest du sie ja auch eigentlich auf FALSE setzen.

Akut-Programming 27. Okt 2004 14:51

Re: Richedit + formatierter Text in DB speichern
 
Ahso judi, dann hab ichs falschrum gemacht! :wall: Sorry. Werds gleich mal versuchen..

Akut-Programming 27. Okt 2004 15:06

Re: Richedit + formatierter Text in DB speichern
 
Leider klappt es so rum auch nich. :coder2:

UweR 27. Okt 2004 15:22

Re: Richedit + formatierter Text in DB speichern
 
Ich habe mich irgendwann mal vor Jahr und Tag damit rumgequält und krieg es so aus dem Stehgreif auch nicht mehr zusammen. Es kann sein das du bei dem Zugriff über WriteToFile oder WriteToStream gehen mußt damit dir dein RichEdit die Formatierung mit reinbastelt. Ich buddele heut abend noch mal und schaue mal ob ich was finde.

Akut-Programming 28. Okt 2004 07:16

Re: Richedit + formatierter Text in DB speichern
 
Moin Uwe!

Also das hier ist der Code, den ich beim auslesen ausführe:
Delphi-Quellcode:
TmpMemoryStream:= TMemoryStream.Create;
TmpStringList:= TStringList.Create;
try
   TmpStringList.Text:= dstGetReadme.Fields.Fields[1].AsString;
   TmpStringList.SaveToStream(TmpMemoryStream);
   TmpMemoryStream.Position:= 0;
   reReadme.PlainText:=true;
   reReadme.Lines.LoadFromStream(TmpMemoryStream);
finally
       TmpMemoryStream.Free;
       TmpStringList.Free;
end;
und das der Code beim speichern:
Delphi-Quellcode:
TmpMemoryStream:= TMemoryStream.Create;
TmpStringList:= TStringList.Create;
try
   reReadme.Lines.SaveToStream(TmpMemoryStream);
   TmpMemoryStream.Position:= 0;
   TmpStringList.LoadFromStream(TmpMemoryStream);
   reReadme.PlainText:=false;
   cmdSaveReadme.CommandText:='update readme_tbl set readme = '''+TmpStringList.Text+''' where projekt = '''+SelectetProject+'''';
   cmdSaveReadme.Execute;
finally
       TmpMemoryStream.Free;
       TmpStringList.Free;
       StatusBar1.SimpleText:='Readme: Eintrag für "'+SelectetProject+'" wurde gespeichert';
       Timer1.Enabled:=true;
end;
Gruß,
Sascha

UweR 28. Okt 2004 07:47

Re: Richedit + formatierter Text in DB speichern
 
Hallo Sascha,

ich glaube ich hab's gefunden. Vor dem Schreiben in die RichEdit-Komponente setzt du Plain-Text auf True.
Zitat:


Delphi-Quellcode:
reReadme.PlainText:=true;
reReadme.Lines.LoadFromStream(TmpMemoryStream);

Ansonsten habe ich das damals glaube ich genauso gemacht. Du solltest auch Plaintext eigentlich auch immer auf False lassen, sonst siehst du die Steuerzeuchen in der RichEditkomponente im Klartext.

Akut-Programming 29. Okt 2004 07:45

Re: Richedit + formatierter Text in DB speichern
 
Moin Uwe!

Also das ganze ambesten so?
Delphi-Quellcode:
reReadme.PlainText:=true;
reReadme.Lines.LoadFromStream(TmpMemoryStream);
reReadme.PlainText:=false;
:gruebel:

Gruß,
Sascha

UweR 29. Okt 2004 09:15

Re: Richedit + formatierter Text in DB speichern
 
Ich würde Plaintext zur Entwurfszeit auf FALSE setzen und dann nicht mehr anfassen!

Akut-Programming 1. Nov 2004 13:50

Re: Richedit + formatierter Text in DB speichern
 
Tach Uwe!

Leider klappts so auch nicht. Mich würde mal interessieren, was da falsch läuft. :gruebel:

Gruß,
Sascha

der-C 1. Nov 2004 14:19

Re: Richedit + formatierter Text in DB speichern
 
ich hab da mal nen bissel Code

Delphi-Quellcode:
procedure SetRTFText(RichRTFText: string);
var

 FStream : TMemoryStream;

begin


  FStream := TMemoryStream.Create;
  FStream.Clear;
  FStream.WriteBuffer(RichRTFText[1], Length(RichRTFText));
  FStream.Position := 0;
  DeinRichedit1.Lines.LoadFromStream(FStream);
  FStream.Free;


end;


function GetRTFText: string;
var

 FStream : TMemoryStream;

begin


  FStream := TMemoryStream.Create;
  FStream.Clear;
  DeinRichedit1.Lines.SaveToStream(FStream);
  Result := PChar(FStream.Memory);
  FStream.Free;

end;


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:07 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