[Tustep-Liste] Kuerzen eines Textes
Giorgio Giacomazzi
giorgio at giacomazzi.de
Fr Mär 16 12:02:18 CET 2007
Giorgio Giacomazzi wrote:
> Diskussionsforum Tustep-Liste
> Weitere Informationen: www.itug.de
> ------------------------------------------------------------
>
> Lieber Herr Schälkle,
>
> Kuno Schälkle wrote:
>> Diskussionsforum Tustep-Liste
>> Weitere Informationen: www.itug.de
>> ------------------------------------------------------------
>>
>> 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
>
> vielleicht interessiert es Sie, wie einfach dieses Problem in Python
> gelöst wird. Analog zu Ihren Beispielen unten:
>
> text = "Das ist ein Beispiel zum Verkürzen eines Textes"
>
> # Zeichen aus einem String extrahieren
> text[:15] # 'Das ist ein wei'
> text[-15:] # 'en eines Textes'
>
> # Worte aus einer Liste extrahieren
> words = text.split()
> words[:3] # ['Das', 'ist', 'ein']
> words[-3:] # ['Verkürzen', 'eines', 'Textes']
>
> Mittels der Notation container[start:end] kann *direkt* auf Teile von
> Strings und Listen zugegriffen werden (slicing); negative Indices zählen
> vom Ende her. Es entfallen sämtliche Hilfskonstruktionen, LOOPs etc.,
> auch Hilfsvariablen sind verzichtbar.
>
> Die komplette Lösung der gestellten Aufgabe wäre dann
>
> print " ".join(words[:3]), "...", " ".join(words[-3:])
>
> Mit besten Grüßen,
> Giorgio Giacomazzi
>
>> 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
>>
>> ------------------------------------------------------------
>> Tustep-Liste at itug.de
>> https://lists.uni-wuerzburg.de/mailman/listinfo/tustep-liste
>
> ------------------------------------------------------------
> Tustep-Liste at itug.de
> https://lists.uni-wuerzburg.de/mailman/listinfo/tustep-liste
>
--
Giorgio Giacomazzi
Strelitzstr. 18
D-12105 Berlin
Tel.: 030-70176848
Fax: 0721-151440186
Mehr Informationen über die Mailingliste Tustep-Liste