AGB  ·  Datenschutz  ·  Impressum  







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

Datentyp für Property (RTF)

Ein Thema von haentschman · begonnen am 26. Jul 2018 · letzter Beitrag vom 26. Jul 2018
Antwort Antwort
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.289 Beiträge
 
Delphi 12 Athens
 
#1

Datentyp für Property (RTF)

  Alt 26. Jul 2018, 07:19
Hallöle...

Mein Frage fällt unter "again what learned" Die Tante gibt nur unter "Speichern von RTF in DB" nur Lösungen mit Standard DB Werkzeugen (TField) aus.

Ich möchte gern eine Datenbank Tabelle in ein Objekt laden/speichern. Soweit so gut. Mir machen die RTF Felder Sorgen. In der DB liegen die RTF Felder als varbinary(max) vor. (Inhalt: 0x7B5C727466315C616E73695C6465666630...) In der Oberfläche sollen die Daten in einem Standard z.B. RTF Memo angezeigt werden. Dazwischen soll, später, die Klasse liegen als Ersatz für TDataSet.

Frage:
Mir geht um das Ablegen des Streams in die Klasse. Welche Dateitypen kommen für die Properties in Frage? Oder direkt der Stream als Property? Wie lädt das Standard RTF Control den Inhalt? Wandelt das Control den "Stringwert" selbst um?

In der Doku wird als Datentyp RawByteString "empfohlen" ist das richtig? Andere Variante: https://www.delphipraxis.net/185991-...speichern.html

Danke für Infos.

Geändert von haentschman (26. Jul 2018 um 07:40 Uhr)
  Mit Zitat antworten Zitat
Hobbycoder

Registriert seit: 22. Feb 2017
930 Beiträge
 
#2

AW: Datentyp für Property (RTF)

  Alt 26. Jul 2018, 08:31
Ich habe bisher in einer Klasse immer TMemoryStream verwerndet. Bisher nie Probleme damit gehabt. Das RTF läd ja direkt aus dem Stream, so war das für mich das einfachste.
Gruß Hobbycoder
Alle sagten: "Das geht nicht.". Dann kam einer, der wusste das nicht, und hat's einfach gemacht.
  Mit Zitat antworten Zitat
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#3

AW: Datentyp für Property (RTF)

  Alt 26. Jul 2018, 08:36
Ein String sollte schon passen. RTF ist kein binäres Format:

Zitat von Wikipedia:
{\rtf1
Guten Tag!
\line
{\i Dies} ist \b{\i ein
\i0 formatierter \b0Text}.
\par
\i0 Das \b0Ende.
}
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  Mit Zitat antworten Zitat
mjustin

Registriert seit: 14. Apr 2008
3.004 Beiträge
 
Delphi 2009 Professional
 
#4

AW: Datentyp für Property (RTF)

  Alt 26. Jul 2018, 08:48
Ein String sollte schon passen. RTF ist kein binäres Format:

Zitat von Wikipedia:
{\rtf1
Guten Tag!
\line
{\i Dies} ist \b{\i ein
\i0 formatierter \b0Text}.
\par
\i0 Das \b0Ende.
}
Können auf das RTF Keyword "\bin" nicht auch beliebige Binärdaten folgen, z.B. für Bilder?
Michael Justin
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe
Online

Registriert seit: 20. Jan 2006
Ort: Lübbecke
10.994 Beiträge
 
Delphi 12 Athens
 
#5

AW: Datentyp für Property (RTF)

  Alt 26. Jul 2018, 08:53
Wenn du nicht sicher bist, was in den Daten wirklich vorkommt, kannst du immer noch auf TBytes ausweichen. Da gibt es keine impliziten Umwandlungen oder ähnliche Manipulationen. Über TBytesStream lässt sich das auch von jedem bzw. in jedes andere Format umwandeln.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Schokohase
(Gast)

n/a Beiträge
 
#6

AW: Datentyp für Property (RTF)

  Alt 26. Jul 2018, 08:54
Statt eines Streams würde ich einfach TBytes nehmen. Bei einem TStream hat ja wesentlich mehr als einfach nur die Daten, sondern auch noch Positionsangaben und selbst bei einem rein lesenden Zugriff, kann dieser Status verändert werden.

(da war der Uwe schneller)

Ob der Inhalt jetzt RTF ist oder nicht würde für mich (hier) keine Rolle spielen, denn der Datenbank-Typ ist ein varbinary und da passt TBytes wie die Faust aufs Auge.
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.289 Beiträge
 
Delphi 12 Athens
 
#7

AW: Datentyp für Property (RTF)

  Alt 26. Jul 2018, 09:56
Danke

Ich probiere die verschieden Varianten aus. Am Ende hätte die Property so, daß, ohne Umwandlung, das RTF Control die Daten anzeigen kann. Das ist mit dem TBytesStream möglich.

  Mit Zitat antworten Zitat
Rolf Frei

Registriert seit: 19. Jun 2006
629 Beiträge
 
Delphi 11 Alexandria
 
#8

AW: Datentyp für Property (RTF)

  Alt 26. Jul 2018, 14:53
Können auf das RTF Keyword "\bin" nicht auch beliebige Binärdaten folgen, z.B. für Bilder?
Nein die sind ebenso als "Text" abgelegt. Hier ein Beispiel:

Code:
{\rtf1\ansi\ansicpg1252\deff0\deflang2055{\fonttbl{\f0\fnil\fcharset0 Calibri;}}
{\*\generator Msftedit 5.41.21.2510;}\viewkind4\uc1\pard\sa200\sl240\slmult1\lang7\f0\fs22{\pict\wmetafile8\picw1693\pich1693\picwgoal960\pichgoal960 
0100090000034a18000000002118000000000400000003010800050000000b0200000000050000
000c0240004000030000001e000400000007010400040000000701040021180000410b2000cc00
400040000000000040004000000000002800000040000000400000000100180000000000003000
0000000000000000000000000000000000c66321bd5a18b55210945218847b63cedecea5bdad5a
4a398c3918c65229ce5221c65229a54a29d69c84ffe7debdb5a5cebdb5ffffffb5b5d67b8cbd84
usw...
oder mit einem eingebeteten Objekt:
Code:
{\rtf1\ansi\ansicpg1252\deff0\deflang2055{\fonttbl{\f0\fnil\fcharset0 Calibri;}}
{\*\generator Msftedit 5.41.21.2510;}\viewkind4\uc1\pard\sa200\sl276\slmult1\lang7\f0\fs22{\object\objemb{\*\objclass Paint.Picture}\objw2835\objh2835{\*\objdata
01050000
02000000
07000000
50427275736800
00000000
00000000
a0a30100
424d8ea30100000000003600000028000000bd000000bd000000010018000000000058a3010000
000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
usw...
Ein String passt da problemlos.

Geändert von Rolf Frei (26. Jul 2018 um 15:08 Uhr)
  Mit Zitat antworten Zitat
TigerLilly
Online

Registriert seit: 24. Mai 2017
Ort: Wien, Österreich
1.174 Beiträge
 
Delphi 11 Alexandria
 
#9

AW: Datentyp für Property (RTF)

  Alt 26. Jul 2018, 16:06
Aus der Doku:

Code:
Picture Data
\binN
The picture is in binary format. The numeric parameter N is the number of bytes that follow. Unlike all other controls, this control word takes a 32-bit parameter.
Bilder können, müssen aber nicht als Text abgebildet sein.
  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 10:02 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