[Tustep-Liste] Makros - Zeichenfolge in Datei suchen

Kuno Sch�lkle Schaelkle at zdv.uni-tuebingen.de
Fr Mai 19 11:56:01 CEST 2006


Sehr geehrter Herr Neumann,

> Es soll das Vorhandensein einer Zeichenfolge in einer TUSTEP-Datei
> überprüft werden und in Abhängigkeit davon, ob der <string> vorhanden ist,
> eine Aktion ausgelöst werden. Also etwa so:
>
> #AN,datei
> $$ IF ( ...............................) THEN
> $$          #KO... (irgendwelche Aktionen)
> $$ ENDIF

Das folgende Makro (es ist in der Beispieldatei enthalten,
die man mit dem Makro #*beispiel erhaelt) prueft, ob
eine Datei Fussnoten (den String "%0%0") enthaelt.

$$! quelle
$$=- {}
MODE VARIABLE

SET status = CHECK (quelle, READ, TUSTEP)
ERROR/STOP "QUELLE: ", status

BUILD R_TABLE tab = ":%0%0:"

ACCESS q: READ/RECORDS "{quelle}" s.z/u, txt, anz

FIND/NEXT q (-; tab; -; -)

IF (EOF)  THEN
   SET text = "Ohne Fußnoten"
ELSE
   SET text = "Mit Fußnoten"
ENDIF

ENDACCESS q

IF (text.EQ."Mit Fußnoten")  THEN
   + Text mit Fußnoten bearbeiten
   - ...
ELSE
   + Text ohne Fußnoten bearbeiten
   - ...
ENDIF

Dabei wird mit FIND ein Satz gesucht, der eine Zeichenfolge
aus der R_TABLE tab enthaelt. Wenn keiner gefunden wird
(d.h. wenn bis ans Dateiende = "End Of File" gesucht wurde),
ist EOF erfuellt, andernfalls nicht. Zu beachten ist, dass EOF
abgefragt wird bevor ENDACCESS ausgefuehrt wird, da die
Abfrage danach nicht mehr zulaessig ist.

Mit freundlichen Gruessen
Kuno Schaelkle



Mehr Informationen über die Mailingliste Tustep-Liste