=== Zametki zlogo admina » Web-programmirovanie na Turbo Basic
===
Po pros'bam vykladyvaju otdel'nym postom kod, napisannyj radi prikola v
forume Winreview.
Vse nachalos' s citaty v razdele prikolov:
XXX
20:10:26 kto v zdravom ume budet pejsat' veb-skripty na bejsike?
20:11:25 vprochem, .NET pokazalo, chto mozhno pejsat' i plevat'sja vne
zavisimosti ot jazyka
Ja reshil pokazat', chto e'to vse-taki vozmozhno i dazhe mestami prikol'no.
Sovremennye versii jazyka juzat' ne interesno, poe'tomu ja reshil
obratit'sja k istokam Borland Turbo Basic.
Ranee mne gde-to popadalsja real'nyj FAQ na temu programmirovanija CGI
skriptov na dosovom turbo bejsike. Prichem u skompilennyh im e'kzeshnikov
byl kakoj-to kosjak s stdout, prihodilos' podstavljat' kostyl', chto-to
tipa zavorachivanija e'kzeshnikov v batniki. Ja ne proboval, no avtor
kljalsja i bozhilsja, chto vse rabotaet. V obschem, ne ustojal i poproboval.
Itak:
5 open "out.txt" for output as #1
10 print# 1,"Content-Type: text/html"
20 print# 1,""
30 print# 1,"Hello World!"
40 qs$ = environ$("QUERY_STRING")
50 vn$ = "name"
60 gosub 1000
70 if vv$<>"" goto 100
80 print# 1,"
Please, enter your name
"
90 goto 200
100 print# 1,"Fuck you, "+vv$+"!
"
200 close# 1
1000 rem Parsim peremennyu QUERY_STRING
1001 rem vn$ - imya peremennoi, vv$ - znachenie.
1010 vt$ = vn$ + "="
1020 vv$ = ""
1030 vp = 0
1040 for i=1 to len(qs$)-len(vt$)+1
1050 if mid$(qs$,i,len(vt$))=vt$ then vp=i+len(vt$) else goto 1070
1060 goto 1080
1070 next i
1080 if vp=0 goto 1200
1090 ls = 0
1100 for i=vp to len(qs$)
1110 if mid$(qs$,i,1)<>"&" then ls=ls+1 else goto 1130
1120 next i
1130 vv$ = mid$(qs$,vp,ls)
1200 return
Da, tam dejstvitel'no est' problemy s stdout. Obychnye operatory PRINT
vyvodjat tekst na e'kran. No perenapravlenie vyvoda v fajl ne rabotaet.
A e'to znachit, chto Apach ne vidit i ne mozhet peredat' klientu vyvod
e'kzeshnika. Ja popytalsja vyvesti tekst v standartnyj fajl CON, no e'to ne
srabotalo. Poe'tomu pojavilsja takoj kostyl':
@echo off
cgi.exe
type out.txt
A teper' poljubujtes' na rezul'tat:
Itak, nachalo polozheno. Zhdem pojavlenija v internete megaportalov,
napisannyh na Turbo Bejsike. Programmisty, vpered! Vozrodim ljubimyj
jazyk nashih predkov! Dumaju, Hrjukinu ponravitsja
TODO: Nado esche kak-to nauchit'sja lovit' STDIN (chtoby POST zaprosy
rabotali).
P.S. Da, ja znaju vse kosjaki e'toj konstrukcii, no oni ustranimy. E'to
primer, sljapannyj na kolenke za neskol'ko minut.
.