[Tustep-Liste] Editor - Zahlenwerte suchen
Kuno Schälkle
schaelkle at zdv.uni-tuebingen.de
Fr Apr 1 08:37:13 CEST 2011
Lieber Herr Carls,
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
ich möchte einheitlich alle Bereichsangaben, die sich lediglich um den
Wert eins unterscheiden, finden. Gibt es eine Möglichkeit, im Editor
nach direkt aufeinander folgenden Zahlenwerten zu suchen - also: 1-2,
37-38, 1001-1002 - nicht aber 1-3, 36-40, 1000-1002.
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
im Editor ließe sich das nur sehr umständlich realisieren.
Möglicher Ausweg: Mit TUSCRIPT die betroffenen Zahlenpaare
kennzeichnen und dann im Editor diese Kennzeichnung suchen:
$$! quelle, ziel
$$-
$$ MODE TUSCRIPT
SET status = CHECK (quelle, READ, TUSTEP)
ERROR/STOP "QUELLE: ", status
SET status = CHECK (ziel, WRITE, TUSTEP)
ERROR/STOP "ZIEL: ", status
SET status = UNIQUE (quelle, ziel)
ERROR/STOP "Datei ", status, " ist mehrfach angegeben"
COMPILE
BUILD S_TABLE ttab = ":<>>/-<>>/:"
ACCESS q: READ/STREAM/RECORDS "{quelle}" ...
sn.zn/un, aken + text/ttab + eken, typ
ACCESS z: WRITE/ERASE/STREAM "{ziel}" ...
sn.zn/un, aken + text + eken
LOOP/999999
READ/NEXT/EXIT q
IF (typ.EQ.4) THEN
SET egal = SPLIT (text, ":-:", z1, z2)
SET zz = z1 + 1
IF (zz.EQ.z2) SET text = CONCAT ("[[", text, "]]")
ENDIF
WRITE z
ENDLOOP
ENDACCESS/PRINT q
ENDACCESS/PRINT z
ENDCOMPILE
Damit werden alle betroffenen Zahlenpaare in [[ und ]] eingeschlossen.
Mit der Tabelle ttab werden Zahlenpaare als "Trennzeichen" definiert.
Immer wenn ein solches Trennzeichen auftritt (typ=4), werden die
beiden Zahlen auf z1 und z2 aufgeteilt und dann abgefragt, ob die
beiden Werte unmittelbar aufeinander folgen.
Herzliche Grüße
Ihr Kuno Schaelkle
Mehr Informationen über die Mailingliste Tustep-Liste