dragi Geschrieben 10. Juli 2003 Teilen Geschrieben 10. Juli 2003 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 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
BlearSun Geschrieben 10. Juli 2003 Teilen Geschrieben 10. Juli 2003 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 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
grueni Geschrieben 10. Juli 2003 Teilen Geschrieben 10. Juli 2003 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 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
geloescht_JesterDay Geschrieben 10. Juli 2003 Teilen Geschrieben 10. Juli 2003 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 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
wxy Geschrieben 19. September 2010 Teilen Geschrieben 19. September 2010 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 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
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.