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.

2021-07-09 | 2021-07-16 | 2021-07-23 ZOOM-Universe
TUSCRIPT Sommer Kurs

TUSCRIPT

Eine Einführung

Präsentation https://itug.github.io/TUSCRIPT
Daten https://github.com/ITUG/TUSCRIPT
Download Präsentation und Daten (zip)
CC-BY 4.0
Thomas Kollatz @kol_t
Digitale Academie @ Akademie der Wissenschaften und Literatur | Mainz

*desi TUSTEP-Sitzung einrichten

info

aufrufen

form

definieren

start

starten

Installationsanleitungen

toc

Informationsquellen

Handbuch

Gib Kommando> *zebe

suche

Gib Kommando> suche

hilfe

Gib Kommando> hilfe

toc

Editoranweisungen 1/2

Gib Anweisung > Funktion
ctrl+e Änderungen im Editor werden gespeichert
x #ma,dateinname
x #ma,<editor>
TUSCRIPT in der angegebenen Datei ausführen
TUSCRIPT im aktuellen Editorfenster ausführen
f9 Blättern durch letzte Editoranweisungen

toc

Editoranweisungen 2/2

Gib Anweisung > Funktion
h,skriptdatei,scriptname holen eines (Skript)segmentes
h,skriptdatei,scriptname,-std- holen eines (Skript)segmentes (auch wenn skriptdatei nicht angemeldet ist)
r,skriptdatei,scriptname retten/speichern eines (Skript)segmentes
r,skriptdatei,scriptname,-std- retten/speichern eines (Skript)segmentes (auch wenn skriptdatei nicht angemeldet ist)
l!! Inhalt des Editorfensters wird gelöscht, eingestellten Namen für Datei und Segment werden gelöscht

toc

MODI

$$ MODE TUSCRIPT,{}
wochentage=*
DATA Montag
DATA Dienstag
DATA Mittwoch
DATA Donnerstag
DATA Freitag
DATA Samstag
DATA Sonntag
$$ MODE TUSCRIPT,{}
MODE DATA                            
$$ wochentage=*
Montag
Dienstag
Mittwoch
Donnerstag
Freitag
Samstag
Sonntag
$$ MODE STATEMENT
tagdergeburt=DATE (number,9,10,1963,tagesnummer)    
wochentag=SELECT (wochentage,#tagdergeburt)

toc

Sitzung
01

Dateitypen

ran Segmentdateien
seq TUSTEPdateien
fdf Fremddatenformate | Nicht-TUSTEPdateien

toc

Bedingungen

.eq. == ist gleich
.ne. != ist nicht gleich
.ct.enthält
.nc.enthält nicht
.sw.beginnt mit
.ew.endet mit
.hn.XML-tag hat den Namen
.hn.XML-tag hat das Attribut

toc

Sitzung 1: Funktionen

toc

Sitzung 1: Skript 1/4

$$ MODE TUSCRIPT,{}
TRACE                   
SET var_string="Ich bin eine Variable"
var_digit=3
var_sum=var_digit+2
variable=CONCAT (var_string,": ",var_sum)

Sitzung 1: Skript 2/4

$$ MODE TUSCRIPT,{}

tagesnummer=DATE (number,dd,mm,yyyy,nummerheute)
                            
IF (tagesnummer==1) THEN
 tag="Montag"
ELSEIF (tagesnummer==2) THEN
 tag="Dienstag"
ELSEIF (tagesnummer==3) THEN
 tag="Mittwoch"
ELSEIF (tagesnummer==4) THEN
 tag="Donnerstag" 
ELSEIF (tagesnummer==5) THEN
 tag="Freitag"
ELSEIF (tagesnummer==6) THEN
 tag="Samstag"
ELSEIF (tagesnummer==7) THEN
 tag="Sonntag"
ELSE
 tag="Bitte überprüfen"
 PRINT/ERROR tagesnummer,": ",tag
 STOP
ENDIF

PRINT "Heute ist ",tag
$$ MODE TUSCRIPT,{}
tag=DATE (0)

PRINT "Heute ist ",tag
$$ MODE TUSCRIPT,{}
nummer=RANDOM_NUMBERS(1,10,1)
SELECT nummer
 CASE 1
  tag="Montag"
 CASE 2
  tag="Dienstag"
 CASE 3
  tag="Mittwoch"
 CASE 4
  tag="Donnerstag"
 CASE 5
  tag="Freitag"
 CASE 6,7
  tag="Wochenende (Sa-So)"
 DEFAULT 
  tag="Bitte überprüfen"
  PRINT/ERROR nummer
ENDSELECT
PRINT "nummer: ",nummer,": ",tag

Sitzung 1: Skript 3/4

$$ MODE TUSCRIPT,{}                   
geburtstag="1963-10-09"
x=SPLIT (geburtstag,"|-|",yyyy,mm,dd)
tagdergeburt=DATE (number,dd,mm,yyyy,nummer)

PRINT tagdergeburt

wochentage=*
DATA Montag
DATA Dienstag
DATA Mittwoch
DATA Donnerstag
DATA Freitag
DATA Samstag
DATA Sonntag

wochentag=SELECT (wochentage,#tagdergeburt)
PRINT "Thomas Kollatz wurde am ",dd,".",mm,". ",yyyy," geboren."
PRINT "Das war ein ",wochentag

Sitzung 1: Skript 4/4

$$ MODE TUSCRIPT,{}
tag=DATE (today,dd,mm,yyyy,nummerheute)   
gebdd=9,gebmm=10,gebyyyy=1963
gebtag = DATE (interval,gebdd,gebmm,gebyyyy,nummerheute)
PRINT "er ist ",gebdd," Tage alt"
PRINT gebmm, " Monate "
PRINT gebyyyy, " Jahre "

Übungsaufgaben Sitzung #1

Ermitteln Sie den Wochentag Ihrer Geburt
Ermitteln Sie wieviele Jahre, Monate, Tage seit Ihrer Geburt vergangen sind

toc

Sitzung
02

Funktionen

toc

Datei einrichten

                        $$ MODE TUSCRIPT,{}
status=CREATE ("skripte",ran-o,-std-)
IF (status!="OK") THEN 
   PRINT/ERROR status
   STOP
ENDIF
PRINT status
$$ MODE TUSCRIPT,{}
ERROR/STOP CREATE ("skripte",ran-o,-std-)

toc

READ/RECORDS

$$ MODE TUSCRIPT,{}
file="beispiel.xml"

ERROR/STOP OPEN (file,READ,TUSTEP_DSK)

ACCESS q: READ/FILE/RECORDS/UTF8 file znr,zeile

 LOOP

  READ/NEXT/EXIT q

  IF (zeile.ct."|Thomas Kollatz|") TRACE *znr,zeile

ENDLOOP
ENDACCESS q

ERROR/STOP CLOSE (file)

READ/STREAM

$$ MODE TUSCRIPT,{}
file="beispiel.xml"
ERROR/STOP OPEN (file,READ,-std-)
ACCESS quelle: READ/FILE/STREAM/UTF8 file s,a+t+e
 LOOP
  READ/EXIT quelle
  IF (a.hn."persName") TRACE *t
 ENDLOOP
ENDACCESS quelle
ERROR/STOP CLOSE (file)

Übungsaufgaben Sitzung #2

Wieviele <date> Elemente gibt es in der Beispieldatei?
Geben Sie diese auf dem Bildschirm oder in eine Datei aus!

toc

READ/VARIABLE STREAM typ

$$ MODE TUSCRIPT,{}
file="beispiel.xml"
path2file=FULL_NAME(TUSTEP,file,TUSTEP_DSK)
status=READ (path2file,content,UTF8)
IF (status!="OK") STOP

ACCESS q: READ/VARIABLE/STREAM content s,a+t+e,typ
 LOOP
  READ/EXIT q
  IF (typ!=1,2,3) TRACE *a,t,e
 ENDLOOP
ENDACCESS q

typ 4 == Suchtabelle

$$ MODE TUSCRIPT,{}
file="beispiel.xml"

path2file=FULL_NAME(TUSTEP,file,TUSTEP_DSK)
status=READ (path2file,content,UTF8)
IF (status!="OK") STOP

BUILD S_TABLE pnum =*
DATA |<p><num n="{#}"/>|

ACCESS q: READ/VARIABLE/STREAM/* content s    ,a+t/pnum+e,typ
 LOOP
  READ/EXIT q
   IF (typ==4) TRACE *typ,a,t,e
 ENDLOOP
ENDACCESS q

WRITE/FILE/ERASE/STREAM

$$ MODE TUSCRIPT,{}
file="beispiel.xml"
path2file=FULL_NAME(TUSTEP,file,TUSTEP_DSK)
status=READ (path2file,content,UTF8)
IF (status!="OK") STOP
BUILD S_TABLE pnum =*
DATA |<p><num n="{#}"/>|

ziel="neuedatei.tf"
ERROR/STOP CREATE (ziel,seq-o,TUSTEP_DSK)
pnr=0
ACCESS q: READ/VARIABLE/STREAM/* content s    ,a+t/pnum+e,typ
ACCESS z: WRITE/FILE/ERASE/STREAM ziel   s.z/u,a+t     +e
 LOOP
  READ/EXIT q
  IF (typ==4) THEN
   pnr=pnr+1
   t=SET_ATTRIBUTE ("p","n",pnr)
   PRINT/COLOR:9b t
  ENDIF
  WRITE z
 ENDLOOP
ENDACCESS q
ENDACCESS z