[Tustep-Liste] Datei mit P-Tag erzeugen

Niels Bohnert niels.bohnert at gmx.de
Fr Apr 29 14:49:26 CEST 2016


Liebe Liste,

auf die Gefahr hin, pedantisch zu langweilen, erlaube ich mir, die 
#KOPIERE-Lösung dieses kleinen Problems noch einmal zu verbessern, und 
zwar weil die folgende Version wie jene von Herrn Kollatz auch mit 
mehrfach aufeinanderfolgenden Leerzeilen sowie Leerzeilen am Dateiende 
(diese ignorierend) fertig wird:

#ko,sb,sc,,+,*
rr    1   if(s0.eq.0) then; i0=1; goto 0; else; if (i0.eq.0) goto 3; 
i0=0; endif;
erg   2   |<p>|
*eof

In der Rechenanweisung sind die Bedingungen wie folgt geschachtelt:

if(s0.eq.0) then;         # Wenn Leerzeile, dann: #
    i0=1; goto 0;          # 'Wahlschalter'-Variable = 1 setzen, 
Leerzeile wegwerfen; #
else;                     # sonst: #
    if(i0.eq.0)goto 3;     # wenn 'Wahlschalter' = 0, Zeile ausgeben; #
    i0=0;                  # sonst 'Wahlschalter' = 0 setzen (und im 2. 
Durchgang weitermachen) #
endif;

Herzliche Grüße,
Niels Bohnert


On 29.04.2016 12:26, Niels Bohnert wrote:
> Diskussionsforum Tustep-Liste
> Weitere Informationen: www.itug.de
> ------------------------------------------------------------
>
>
>
> Liebe Liste,
>
> eine mögliche Vereinfachung von Herrn Kollatz' Vorschlag wäre 
> folgende:Wenn eine Leerzeile eingelesen wird, wird gleich die nächste 
> Zeile eingelesen, <p> davorgesetzt und dann geschrieben. Sonst wird 
> einfach nur geschrieben. Siehe unten.
>
> Die 'old school'-Variante könnte man dem annähern und so die zuvor 
> benötigte LZU-Karte einsparen:
> #ko,sb,sc,,+,*
> ws+   1   1
> rr    1   if(s0.eq.0) then; WS1=1; goto 0; else; goto 3; endif;
> wsl   2   1
> erg   2   |<p>|
> *eof
>
> Herzliche Grüße,
> Niels Bohnert
>
>
> $$ MODE TUSCRIPT,{}
> quelle="a", ziel="b"
>
> ERROR/STOP CREATE (quelle,seq-e,-std-)
> ERROR/STOP CREATE (ziel,seq-e,-std-)
>
> MODE DATA
> $$ daten=*
> zeile1
> zeile2
>
> zeile3
> zeile4
> zeile5
>
> zeile6
> zeile7
> $$ MODE TUSCRIPT
>
> FILE/ERASE $quelle =daten
>
> ACCESS q: READ/RECORDS  $quelle s.z/u,zeile
> ACCESS z: WRITE/RECORDS $ziel   s.z/u,zeile
> LOOP
>    READ/NEXT/EXIT q
>    IF (zeile=="") THEN
>       READ/NEXT/EXIT q
>       zeile=CONCAT("<p>",zeile)
>    ENDIF
>    WRITE z
> ENDLOOP
> ENDACCESS/PRINT q
> ENDACCESS/PRINT z
>
>
>
> On 29.04.2016 10:46, Thomas Kollatz wrote:
>> Diskussionsforum Tustep-Liste
>> Weitere Informationen:www.itug.de
>> ------------------------------------------------------------
>>
>> Liebe Liste, liebe Alten, liebe Jungen,
>>
>> auch wenn ausdrücklich nach einer Old School Lösung gefragt wurde, geht das natürlich auch ohne Sprünge und New School und könnte etwa so aussehen. Geht sicher noch eleganter, aber so ist es vermutlich am verständlichsten.
>> Wenn eine Leerzeile eingelesen wird, wird nicht geschrieben (CYCLE), dafür eine Variable (p_vor_zeile)  mit dem <p>-Tag belegt,
>> sonst wird geschrieben (WRITE)  und die Variable mit dem Tag mit dem Inhalt der Zeile verbunden (concat), nach dem Schreiben wird diese Variable wieder geleert.
>>
>> Herzliche Grüße
>> Thomas Kollatz
>> ——>
>>
>> $$ MODE TUSCRIPT,{}
>> quelle="a", ziel="b"
>>
>> ERROR/STOP CREATE (quelle,seq-e,-std-)
>> ERROR/STOP CREATE (ziel,seq-e,-std-)
>>
>> MODE DATA
>> $$ daten=*
>> zeile1
>> zeile2
>>
>> zeile3
>> zeile4
>> zeile5
>>
>> zeile6
>> zeile7
>> $$ MODE TUSCRIPT
>>
>> FILE/ERASE $quelle =daten
>>
>> p_vor_zeile=""
>> ACCESS q: READ/RECORDS  $quelle s.z/u,zeile
>> ACCESS z: WRITE/RECORDS $ziel   s.z/u,zeile
>> LOOP
>>   READ/NEXT/EXIT q
>>   IF (zeile=="") THEN
>>    p_vor_zeile="<p>"
>>    CYCLE
>>   ELSE
>>    zeile=CONCAT (p_vor_zeile,zeile)
>>    WRITE z
>>    p_vor_zeile=""
>>   ENDIF
>> ENDLOOP
>> ENDACCESS/PRINT q
>> ENDACCESS/PRINT z
>>
>> ------------------------------------------------------------
>> Tustep-Liste at itug.de
>> https://lists.uni-wuerzburg.de/mailman/listinfo/tustep-liste
>
> -- 
> Dr. Niels Bohnert
> Mittelhochdeutsches Wörterbuch
> Arbeitsstelle der Akademie der Wissenschaften
> und der Literatur Mainz
> Universität Trier
> 54286 Trier | DM 339 | Tel. 0651 / 201-2320
>
>
> ------------------------------------------------------------
> Tustep-Liste at itug.de
> https://lists.uni-wuerzburg.de/mailman/listinfo/tustep-liste

-- 
Dr. Niels Bohnert
Mittelhochdeutsches Wörterbuch
Arbeitsstelle der Akademie der Wissenschaften
und der Literatur Mainz
Universität Trier
54286 Trier | DM 339 | Tel. 0651 / 201-2320

-------------- nächster Teil --------------
Ein Dateianhang mit HTML-Daten wurde abgetrennt...
URL: <https://lists.itug.de/pipermail/tustep-liste/attachments/20160429/e0cee6d4/attachment.htm>


Mehr Informationen über die Mailingliste Tustep-Liste