🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: de.comp.lang.c++
Article #642

Re: Datenstruktur fuer Textverarbeitung

#642
From: Michael Strauch
Date: Mon, 23 Oct 1995 15:18
55 lines
3201 bytes
Thorsten Gau (gau_t@gauhh.hanse.de) wrote:

> ich bei dabei ein Programm in C++ zu schreiben, daß Texte von einem Format in
> ein internes und dann in ein anderes konvertiert. Dabei werden einige
> Informationen extrahiert (z.B. Feldinhalte, URLs, ...). Zur Zeit arbeitet mein
> Programm rein auf ASCII Basis. Nun moechte ich gerne verschiedene
> Schriftattribute (Fett, Kursiv, ...), Schriftgroessen und Schriftfamilien
> unterstuetzen. Weiterhin soll der Zeilenabstand variabel sein.

> Welche Datenstrukturen bieten sich hierfür an?

> a) Jedes Zeichen hat bekommt Informationen füer alle möglichen 
>    Attribute.
>    + Man weiß, wie jedes Zeichen auszusehen hat
>    - Sehr speicheraufwendig
>    - wie bildet man Zeilenabstand ab?

> b) Man hat Nettozeichen und Änderungscodes, also ähnlich wie bei
>    Drucker-ESC-Sequenzen
>    + weniger Speicher erforderlich
>    - Extrahierung des Nettotextes wird aufwendiger

> c) Eine Struktur für Nettotext, eine andere für Attribute/Änderungen
>    +
>    -

Einen konkreten Tip kann ich Dir auch nicht geben, aber Du solltest
vielleicht mal folgendes (im Sinne guter Datenabstraktion und
objektorientierter Programmierung) versuchen:

Definiere Dir Dein Objekt "Text", bestehend aus Untereinheiten wie
z.B. Absaetze, Saetze, Woerter, Zeichen (je nachdem, was Du fuer
sinnvoll haeltst), ueber die Operationen, die Du auf Deinen Daten alle
durchfuehren willst. Ueberlege Dir dann, welche Operationen bei
welcher internen Zeichenrepraesentation langsam werden, und ob Du
damit leben kannst. Je nachdem, wo Du dann Deinen Schwerpunkt legst
(hohe Geschwindigkeit bei allen oder nur einem Teil der Funktionn,
oder besser einfache Struktur), kannst Du Dich dann immer noch
entscheiden, welcher Repraesentation Du letztendlich den Vorzug gibst.

Einen Kompromiss zwischen speicheraufwendiger oder schneller Loesung
kannst Du Dir alle mal auch selber zusammenbauen: z.B. fuer jedes
Wort Deines Textes vermerken, ob es ein einheitliches Schriftattribut
besitzt (und wenn ja, welches). Letztendlich haengt aber alles von
den konkreten Operationen ab, die Du fuer Deinen Text benoetigst. Wenn
Du Dir darueber eine konkrete Uebersicht verschaffst, kannst Du Dir
hoechstwahrscheinlich Deine Frage selbst beantworten.

- Michael -
--
***************************************************************************
*   Michael Strauch            *  email:                                  *
*   University of Dortmund     *  strauch@emmy.mathematik.uni-dortmund.de *
*   Department of Mathematics  *                                          *
***************************************************************************
Technical Details
Message-ID: <46gbp2$hba@nx2.hrz.uni-dortmund.de>
Path: arc1-ca.pugleaf.net!Uni-Dortmund.DE!strauch
References: <DGr897.7KA@gauhh.hanse.de>

Show Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!Uni-Dortmund.DE!strauch
From: strauch@emmy.mathematik.uni-dortmund.de (Michael Strauch)
Newsgroups: de.comp.lang.c++,de.comp.misc
Subject: Re: Datenstruktur fuer Textverarbeitung
Followup-To: de.comp.lang.c++,de.comp.misc
Date: 23 Oct 1995 15:18:58 GMT
Organization: University of Dortmund, Germany
Message-ID: <46gbp2$hba@nx2.hrz.uni-dortmund.de>
References: <DGr897.7KA@gauhh.hanse.de>
NNTP-Posting-Host: emmy.mathematik.uni-dortmund.de
X-Newsreader: TIN [version 1.2 PL2]