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.

8.1.2017 | Weingarten

TUSTEP workshop

Variable versus Datei

Datenverarbeitung mit TUSCRIPT

Slides: https://kollatzthomas.github.io/20170108_Variable_vs_Datei

Thomas Kollatz | @kol_t | Twitter KollatzThomas | CC-BY 4.0

Inhalt

  1. REQUEST
  2. read/stream/variable
  3. read | write
  4. Segmentdateien
  5. 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
  1. Ermitteln einer personenbezogenen GND-ID
  2. 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 …

F I N I S

Thank you

Download