Jos oletetaan että sinulla on seuraavantyyppinen ohjelma, eli tyyppikokoelma ja funktio jolla luot sekä asetat objektin. Tarvitset muuttujan joka pitää kirjaa objektien määrästä (tässä gObjektimaara). Tyyppikokoelmassa täytyy olla kenttä joka tietää objektin tyypin.
Code: Select all
Type objektit
Field obj
Field tyyppi
Field objX
Field objY
EndType
Global gObjektimaara
Function LuoObjekti( tyyppi, x, y )
no.objektit = New( objektit )
gObjektimaara + 1
no\tyyppi = tyyppi
no\objY = x
no\objY = y
Select tyyppi
Case 1
no\obj = LoadObject( "sejase.bmp" )
Default
MakeError "asd"
EndSelect
EndFunction
Tallentaessa kirjoitat ensin objektien määrän: WriteInt f, gObjektimaara; jonka jälkeen kirjoitat kaikkien objektien tiedot järjestyksessä ylös.
Code: Select all
f = OpenToWrite( "tiedosto.txt" )
WriteInt f, gObjektimaara
For io.objektit = Each objektit
WriteInt f, io\tyyppi
WriteInt f, io\objX
WriteInt f, io\objY
Next io
CloseFile f
Ladatessa ensin luet objektimäärän, jonka jälkeen luot tämän määrän objekteja. Tärkeätä on, että sekä kirjoittaessa että luettaessa asiat menee yksi yhteen.
Code: Select all
f = OpenToRead( "tiedosto.txt" )
gObjektimaara = ReadInt( f )
For i = 1 To gObjektimaara
LuoObjekti( ReadInt( f ), ReadInt( f ), ReadInt( f ) )
Next i
CloseFile f