Zum Inhalt springen

Delphi, memo textformat


dragi

Empfohlene Beiträge

Hi,

ich brauche mal eure Hilfe!

Ich möchte ein memo oder besser Richedit von einer Datenbank (Access) einlesen lassen. Nun soll aber die Formatierung nicht verloren gehen ( Tabs und auch Fettschrift). Habt ihr eine idee wie man das anstellen kann?! Oder vielleicht auch andere Ideen ausser memo und Richedit?

THX

dragi

Link zu diesem Kommentar
Auf anderen Seiten teilen

Du willst die Formatierung beibehalten?

Es kommt darauf an, was für ein Control zu verwendest. In der Regel hast du doch eine Möglichkeit den INhalt auf der Festplatte zu speichern. Tu das und schau was in der Datei dann gespeichert wurde und öffene die Datei nochmal mit deinem Programm und schau ob du die Formatierungen wieder hast. Wenn ja, dann kannst du ja diesen Inhalt ganz einfach in einem Memo-Feld in der Datenbank auch speichern... Das hängt aber wie gesagt stark daovn ab, was für ein Control du verwendest und was du genau machen willst.

Willst du eine universelle Lösung haben, (also eine Control-Unabhängige) dann ist es besser, du definierst dein eigenes Format in form von XML. Das ist dann aber schon bissele aufwendiger. und konvertierst diesen XML dann in belibige Controls.

Damit hast du natürlich den Vorteil, dass deine Daten nicht unlesbar sein werden, wenn du übermorgen, diesen Control mit einem anderen tauschen willst/musst.

Bist eben dann flexibel und unabhängig.

gruss

blear

Link zu diesem Kommentar
Auf anderen Seiten teilen

Schau dir mal das Delphi-Beispiel RichEdit an (Gibts auf jeden Fall bei D5). Ich würde den Text in einer Datei speichern, in der Datenbank den Pfad zur Datei. Ein Memo-Feld ist für sowas nicht geeignet, da es keine Formatierungen darstellen kann.

Den Text in einer Datei zu speichern hat den Vorteil, daß man keine Größenbeschränkungen wg. Feldtyp hat. Eine Umsetzung in XML ist zwar sehr schön, aber auch sehr aufwendig. TRichEdit speichert den Text im RTF-Format, was ja ein Standard-Format ist.

Die Datei kann dann auch mit anderen RTF-fähigen Programmen (z.B. Notepad) bearbeitet werden, was aber nicht unbedingt sinnvoll ist.

BTW: Was für Zugriffskomponenten verwendest Du (dbExpress, ADOExpress...)?

MfG Frank

Link zu diesem Kommentar
Auf anderen Seiten teilen

Also ich hab sowas schonmal gemacht... mal überlegen...

Wenn ich mir recht erinnere hab ich eine TRichEdit-Komponente genommen. In der Datenbank hatte ich ein String-Feld. Nach dem Auslesen aus der Datenbank hab ich den Inhalt des Feldes in die RichEdit-Komponente geschrieben:

RichEdit1.Text:= Query1.FieldByName('RichText').asString;

vor den Speichern das ganze umgekehrt:

Query1.Edit; // sicher ist sicher

Query1.FieldByName('RichText').asString:= RichEdit1.Text;

Das müsste so eigentlich hinhauen.

Der String ist allerdings grösser als die Buchstaben, die Ausgegeben (bzw. Eingegeben) werden, da ja die RichText Steuerzeichen mit dabei sind. Das Feld also nicht zu klein dimensionieren ;)

Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 7 Jahre später...

hallo,

mit formatierung speichern:

wie oben..

anstatt:

Query1.FieldByName('RichText').asString:= GetRtFText(RichEdit1);

mit der Function GetRtFText:

function GetRTFText(ARichEdit: TRichedit): string;

var

ss: TStringStream;

emptystr: string;

begin

emptystr := '';

ss := TStringStream.Create(emptystr);

try

ARichEdit.PlainText := False;

ARichEdit.Lines.SaveToStream(ss);

Result := ss.DataString;

finally

ss.Free

end;

end;

Greeze

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...