[Tustep-Liste] Kuerzen eines Textes
Kuno Sch�lkle
Schaelkle at zdv.uni-tuebingen.de
Mi Mär 14 10:11:15 CET 2007
Lieber Herr Reeg,
> gibt es eine einfache Möglichkeit mit Mittel dner Makrosprache,
> einen Text so zu verkürzen, daß nur die ersten drei und die letzten drei
> Wörter übrig bleiben?
>
> a b c d e f g h i j k
> zu
> a b c ... i j k
eine fertige Funktion gibt es nicht. Eventuell
kann die Funktion SHORTEN benutzt werden.
Bei ihr kann man die maximale Zeichenzahl
am Anfang und Ende des Textes angegeben
werden. Es wird dann am Blank davor bzw.
danach abgetrennt. Im unten angegebenen
Beispiel 1 waere das Ergebnis:
"Das ist ein ... eines Textes"
Das Beispiel 2 liefert das genaue Ergebnis:
"Das ist eine ... Verk^urzen eines Textes"
Mit herzlichen Gruesse
Kuno Schaelkle
========================================
$$=-
MODE VARIABLE
SET lang = "Das ist ein kleines Beispiel zum Verkürzen eines Textes"
SET kurz = SHORTEN (lang, 15, " ... ", 15)
PRINT kurz
---------------------------------------------------------------------
$$=-
MODE VARIABLE
SET lang = "Das ist ein weiteres Beispiel zum Verkürzen eines Textes"
- Text in einzelne Wörter aufteilen
SET liste = SPLIT (lang, ":<> :")
- Anzahl der Wörter feststellen
SET anzahl = SIZE (liste)
IF (anzahl.LE.6) THEN
- bei 6 oder weniger Wörter ist nichts zu tun
kurz = lang
ELSE
- sonst die ersten drei Wörter in "kurz" einsammeln
SET kurz = ""
LOOP n = 1, 3
SET wort = SELECT (liste, #n)
SET kurz = APPEND (kurz, " ", wort)
ENDLOOP
- drei Punkte für die ausgelassenen Wörter ergänzen
SET kurz = CONCAT (kurz, " ...")
- die drei lezten Wörter in noch anhängen
SET anfang = anzahl - 2
LOOP n = anfang, anzahl
SET wort = SELECT (liste, #n)
SET kurz = APPEND (kurz, " ", wort)
ENDLOOP
ENDIF
- zur Kontrolle ausgeben
PRINT kurz
Mehr Informationen über die Mailingliste Tustep-Liste