[[tuscript:loesungen:start|Zurück zum Inhaltsverzeichnis - Lösungen und Tipps]]
----
====== Request ======
- {{files_open:benutzericons:kollatz-lg.jpg?nolink&16x16|kollatz}} kollatz\\ \\ TUSCRIPT verfügt über zahlreiche Kalenderfunktionen ([[tuscript:loesungen:kalenderwoche_berechnen|siehe oben]]). Darunter gibt es jedoch keine Funktion, die es erlaubt aus einem gregorianischen Datum das entsprechende Datum des hebräischen Kalenders zu errechnen. Diese Funktionalität bieten jedoch zahlreiche Webdienste.\\ \\ Im folgenden Beispiel wird das hebräische Datum direkt aus dem Internet eingelesen.\\ \\
===== Arbeitsschritte =====
* Zunächst wird das gregorianische Tagesdatum ermittelt.
* Anschliessend wird dieses Datum (Jahr, Monat, Tag) über eine Webanfrage als Teil des sogenannten Querystring der Request-Funktion an einen Webdienst ([[http://rosettacalender.com|rosettacalender.com]]) gesendet. Die Antwort des Webservers wird in eine Variable geschrieben.
* Aus dieser Variable wird im letzten Schritt das hebräische Datum ausgelesen.
\\
$$ MODE TUSCRIPT,{}
- Tagesdatum ermitteln
time=TIME ()
- Tagesdatum aufteilen in Jahr, Monat und Tag
nix=SPLIT (time,": :-:",gryear,grmonth,grday,rest)
- Suchanfrage konstruieren
querystring=*
querystring=SET_VALUE (querystring,"gryear",gryear)
querystring=SET_VALUE (querystring,"grmonth",grmonth)
querystring=SET_VALUE (querystring,"grday",grday)
- Suchanfrage an Server senden
url="http://www.rosettacalendar.com/index.cgi"
ask=ENCODE (querystring,cgi)
wwwcontent=REQUEST (url,ask)
- hebräisches Datum aus dem Ergebnis der Anfrage extrahieren
status="off"
LOOP line=wwwcontent
IF (line.ct.":Hebrew Calendar:") status="on"
IF (status=="off") CYCLE
IF (line.ct.":heday:") heday=GET_ATTRIBUTE (line,"value")
IF (line.ct.":selected:") hemonth=EXTRACT (line,":<*>:"|,":*>:")
IF (line.ct.":heyear:") heyear=GET_ATTRIBUTE (line,"value")
ENDLOOP
- Vorbereitung der Bildschirmausgabe
today=DATE (3)
hebrewdate=CONCAT (heday,". ", hemonth, " ", heyear)
- TRACE aktuelle Variablenbelegung
TRACE *time,querystring,heday,hemonth,heyear
- Ausgabe
PRINT "Gregorian date: ", today
PRINT "Hebrew date: ", hebrewdate
\\ Hinweis: Ausführen des Skriptes aus dem TUSTEP-Editor\\
x, #ma,
\\ Bildschirmausgabe mit Tracing der Variablenbelegung für\\
TRACE *time,query string,heday,hemonth,heyear
\\ {{files_open:bilder:request_trace.png|request_trace.png}}\\ \\ \\
* Diese Webanfrage kann auch in eine [[tuscript:loesungen:cgi_scripte|CGI]]-Anwendung integriert werden. Siehe dazu die [[http://steinheim-institut.de:50580/cgi-bin/blau|CGI-Beispielssammlung]], dort den Menupunkt //Request//.
\\
----
[[tuscript:loesungen:start|Zurück zum Inhaltsverzeichnis - Lösungen und Tipps]]