Your browser doesn't support the features required by
impress.mod.js, so you are presented with a simplified version of this presentation.
For the best experience please use the latest Chrome,
Safari or Firefox browser.
TUSTEP workshop
Variable versus Datei
Datenverarbeitung mit TUSCRIPT
Inhalt
- REQUEST
- read/stream/variable
- read | write
- Segmentdateien
- Perspektiven
01
REQUEST
Daten aus WWW auf Variable laden
$$ MODE TUSCRIPT
url="http://steinheim-institut.de/cgi-bin/epidat"
query="id=hha-5050-teip5"
daten=REQUEST (url,query)
daten=DECODE (daten,utf8)
TRACE *daten
copy
lines 1-6
paste
in TUSTEP-Editor
- Ausführen
x #ma,<editor>
- Vorteil
- unmittelbare Onlineabfrage | webbasiert | serverbasiert
- Schnittstelle zu Onlineangeboten | Webservices
- z.B. Datenanreicherung durch GND-Recherche
- Ermitteln einer
personenbezogenen GND-ID
- Datenanreicherung auf Grundlage einer GND-ID
- Nachteil
- In der Regel ist das Ergebnis eines
request
eine mehr oder
weniger valide html
oder xml
Datei, die auf
einer Variable abgelegt wird. Um diese Daten weiterzuverarbeiten, muss
unter Umständen jedoch eine temporäre Datei
angelegt
werden.
02
read/stream/variable
Variable im direkten Zugriff wie eine Datei
einlesen und verarbeiten
$$ MODE TUSCRIPT
ACCESS q: READ/STREAM/VARIABLE daten s, a+t+e,typ,tree
LOOP
READ/EXIT q
PRINT tree
ENDLOOP
ENDACCESS/PRINT q
ENDCOMPILE
copy
lines 1-8
paste
in TUSTEP-Editor
- Ausführen
x #ma,<editor>
Variable im direkten Zugriff wie eine Datei
einlesen und verarbeiten
$$ MODE TUSCRIPT,{}
id="hha-5050-teip5"
url="http://steinheim-institut.de/cgi-bin/epidat"
query=CONCAT ("id=",id)
daten=REQUEST (url,query)
daten=DECODE (daten,UTF)
COMPILE
ACCESS q: READ/STREAM/VARIABLE daten s, a+t+e,typ,tree
LOOP
READ/EXIT q
PRINT/COLOR:F9 tree
ENDLOOP
ENDACCESS/PRINT q
ENDCOMPILE
copy
lines 1-16
paste
in TUSTEP-Editor
- Ausführen
x #ma,<editor>
Variable im direkten Zugriff wie eine Datei
einlesen und verarbeiten
$$ MODE TUSCRIPT,{}
id="hha-5050-teip5", url="http://steinheim-institut.de/cgi-bin/epidat"
query=CONCAT ("id=",id)
daten=REQUEST (url,query), daten=DECODE (daten,UTF)
BUILD S_TABLE a=":<person*>:<listRelation>:"
BUILD S_TABLE e=":</listRelation>:</person>:"
person=relation=*
COMPILE
ACCESS q: READ/STREAM/VARIABLE daten s, a/a+t+e/e,typ,tree
LOOP
READ/EXIT q
IF (typ!=3) CYCLE
IF (a.sw."<person") THEN
content=CONCAT (a,t,e)
person=APPEND(person,content)
ELSEIF (t.sw."<relation") THEN
relation=APPEND(relation,t)
ENDIF
ENDLOOP
ENDACCESS/PRINT q
ENDCOMPILE
TRACE *person,relation
- Vorteil
- Direktzugriff auf Variable mit allen Optionen und Modi des TUSCRIPT
ACCESS
- Nie mehr Dateienmüll !
- Gezielte Kontrolle über
PRINT
oder TRACE
03
read | write
Dateiinhalte auf Variable laden ohne open/close
- read
$$ MODE TUSCRIPT
file="hha-5050-teip5"
path2file=FULLNAME(TUSTEP,file,-std-)
status=READ(path2file,daten)
- write
-
$$ MODE TUSCRIPT
daten="irgendetwas neues"
status=WRITE(path2file,daten)
Dateiinhalte auf Variable laden ohne open/close
$$ MODE TUSCRIPT
file="hha-5040-teip5"
path2file=FULLNAME(TUSTEP,file,-std-)
status=READ(path2file,content)
ASK "Inhalt anzeigen?",answer=""
IF (answer.ab."j","y") THEN
TRACE *content
ENDIF
ASK "Soll die Datei mit neuem Inhalt überschrieben werden?",answer=""
IF (answer.ab."j","y") THEN
mld="Bitte geben Sie neuen Text ein:"
content_new=*
e=EDIT (0:0,a0-a0-70-e0,mld,content_new,0,0)
IF (e=="CR","ENTER") THEN
status=WRITE(path2file,content_new)
TRACE *content_new
ENDIF
ENDIF
copy
lines 1-19
paste
in TUSTEP-Editor
- Ausführen
x #ma,<editor>
- Vorteil
- Zugriff auf DATEI ohne anmelden/abmelden – insbesondere im CGI Zugriff
ist dies ein nicht zu unterschätzender Vorteil
04
Segmentdateien
TUSCRIPT, Segmente und Segmentdateien
- Inhalt anzeigen
-
$$ MODE TUSCRIPT
segmentfile="texte"
ERROR/STOP OPEN(segmentfile,WRITE,-std-)
inhalt=SEGMENT(segmentfile,"?")
- holen | lesen
$$ MODE TUSCRIPT
segmentname="entry170108"
log170108=SEGMENT(segmentfile,segmentname)
- retten | schreiben
-
$$ MODE TUSCRIPT
SEGMENT/ERASE $segmentfile,segmentname=log170108
TUSCRIPT, Segmente und Segmentdateien
- Segmenttitel
-
$$ MODE TUSCRIPT
SEGMENT/TITLE $segmentfile,segmentname="logbuch Eintrag - 170108"
- umbenennen
-
$$ MODE TUSCRIPT
status=RENAME(segment,segment_neu,-,segmentfile)
- löschen
-
$$ MODE TUSCRIPT
status=DELETE(segment_neu,-,segmentfile)
- Vorteil
- Lesender und Schreibender Zugriff auf Segmentdatei wird nun auch
ausserhalb des Editors ermöglicht
- Segmentdateien werden damit auch für die TUSCRIPTbasierte
Onlineeditionsumgebung eine Option
05
Perspektiven
Variable statt Datei …
- … parametergesteuerte Programme für Variablen öffnen
EXECUTE
#ve,$texta,$textb,w,lo=+,,$korr,$prot
- Variablen | webaffine Formate für Datenaustausch
- z.B.
JSON
für Korrekturanweisungen
- kollaborativ erarbeitete TUSTEP | TUSCRIPT libraries anlegen
und über github und | oder REQUEST zur Verfügung stellen
- …