[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