Kirjoitat diagrammitiedoston näin:
Code: Select all
[OTSIKKO]
Yhteensä [riville voi laittaa mitä vaan]
[diagrammin palkkien maksimiarvo]
[ekan palkin nimi]
[ekan palkin arvo]
[tokan palkin nimi]
[tokan palkin arvo]
[...jne...]
Code: Select all
TV :n inhokkisarjat, kaikki ikäluokat
Yhteensä
23
Kauniit ja rohkeat
14
Salkkarit
10
Frendit
5
Big Brother
4
Idols
4
Talent
3
Frasier
3
CSI
2
Futurama
2
Simpsonit
1
Pasila
1
Avara luonto
1
House
1
Code: Select all
SCREEN 1200,600
ClsColor 255,255,255
Color 0,0,0
DrawScreen
DrawScreen
//Color 0,0,0
Global väri
Global pX
Global bw //palkin leveys
bw=40
px = 50
väri=1
Global dscale
dscale=400
Global dbottomy
dbottomy = 400
Type tdiagrammi
Field a
Field m
Field t$
EndType
a=OpenToRead(haetiedosto())
Global otsikko$
otsikko=ReadLine(a)
tmp=ReadLine(a)
diamax=ReadLine(a)
maxvalue=0
Repeat
d.tdiagrammi = New(tdiagrammi)
d\t = ReadLine(a)
d\a = ReadLine(a)
maxvalue=Max(maxvalue, d\a)
d\m=diamax
Until EOF(a)
CloseFile a
Function diagrammi(x,y,arvo,maksimi,txt$, scale=300)
väri = -väri
If väri=1 Then
Color 50,100,150
Else
Color 150,100,50
EndIf
Box x, y-(scale*arvo/maksimi), bw, scale*arvo/maksimi
Color 0,0,0
If väri=1 Then Text x+(bw/2)-(TextWidth(txt)/2), y+40, txt
If väri=-1 Then Text x+(bw/2)-(TextWidth(txt)/2), y+20, txt
Text x+(bw/2)-(TextWidth(arvo)/2), y, arvo
Text x+(bw/2)-(TextWidth((arvo*100/maksimi)+"%")/2), y+60, (arvo*100/maksimi)+"%"
px=px+70
EndFunction
font1=LoadFont("Arial", 36)
font2=LoadFont("Arial", 20)
kx=50
t=0
Repeat
If t=0 Then
t=1
kx=10
dbottomy=10
dscale=10
ElseIf t=1 Then
If dbottomy < 400 Then
dbottomy +5
Else
If dscale < 400 Then
dscale +5
Else
If kx < 50 Then
kx+5
Else
t=2
EndIf
EndIf
EndIf
EndIf
väri=1
px=kx
SetFont font1
Text 0,0, otsikko
SetFont font2
For i=0 To maxvalue
Line 0,dbottomy-(dscale*i/diamax),ScreenWidth(),dbottomy-(dscale*i/diamax)
Color 255,255,255
Line kx-20,dbottomy-(dscale*i/diamax), kx-20+TextWidth(i),dbottomy-(dscale*i/diamax)
Color 0,0,0
Text kx-20,dbottomy-(dscale*i/diamax)-10,i
Next i
For d.tdiagrammi = Each tdiagrammi
diagrammi(px,dbottomy, d\a, d\m, d\t, dscale)
Next d
dscale = dscale + RightKey()-LeftKey()
dbottomy = dbottomy + DownKey()-UpKey()
kx=kx+KeyDown(cbkeyD)-KeyDown(cbkeyA)
bw=bw+KeyDown(cbkeyW)-KeyDown(cbkeyS)
If bw < 5 Then bw=5
DrawScreen
Forever
Function haetiedosto$()
If FileExists(CommandLine()) Then Return CommandLine()
Repeat
f$=Input("Hae diagrammitiedosto: ")
DrawScreen
Until KeyUp(28)
CloseInput
If FileExists(f) Then
Return f
Else
MakeError "Tiedostoa "+f+" ei löytynyt tai tiedostonimessä välilyönti!"
EndIf
EndFunction