Koodia:
Code: Select all
//Esimerkkiohjelma
Dim someString
someString = MakeMEMBlock(1)
PokeString(someString, 0, "Hello World!")
Print PeekString(someString, 0)
WaitKey
//=============================================================================================
//Funktiot
//Kirjoittaa muistipalaan merkkijonon
// mem kokonaisluku - osoitin,
// joka saatiin MakeMEMBlock()-
// funktiolta
//
// pos kokonaisluku - kirjoituskohta
// muistipalassa. 0 on ensimmäinen.
//
// s merkkijono - haluttu merkkijono
Function PokeString(mem, pos%, s$)
Dim l%, i% As Integer
l = Len(s)
//Suurentaa muistipalaa tarvittaessa
If MEMBlockSize(mem) < (pos + l + 4) Then ResizeMEMBlock mem, (pos + l + 4)
//Kirjoitetaan pituus ennen merkkejä
PokeInt mem, pos, l
For i = 0 To l - 1
PokeByte mem, (pos + 4 + i), Asc(Mid(s, i + 1, 1))
Next i
EndFunction
//Lukee muistipalasta merkkijonon
// mem kokonaisluku - osoitin,
// joka saatiin MakeMEMBlock()-
// funktiolta
//
// pos kokonaisluku - kirjoituskohta
// muistipalassa. 0 on ensimmäinen.
Function PeekString(mem, pos%)
Dim l%, i% As Integer
Dim s$ As String
l = PeekInt(mem, pos)
For i = 0 To l - 1
s = s + Chr(PeekByte(mem, pos + 4 + i))
Next i
Return s
EndFunction