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
 
                    - …