Ketut tästä hyötyä on mutta väliäkös sillä. Koodissa ei ole esimerkkiä, pähkäilkää itse jotain.
Ai niin jumankauta, lukekaa se koodi läpi ja muistakaa käyttää InitStream( _streamType )-funktiota. Muuten ei edes toimi!
Code: Select all
//LibSTREAM by Esa94
//(c) Esa Lakaniemi 2008 ->
//Mainitsethan minut jos käytät :P
REMSTART
--HUOMIOHUOMIOHUOMIOHUOMIOHUOMIOHUOMIO--
--HUOMIOHUOMIOHUOMIOHUOMIOHUOMIOHUOMIO--
REMEND
Const TESTING = 1 //MUUTA TÄMÄ ENSIN!
REMSTART
--HUOMIOHUOMIOHUOMIOHUOMIOHUOMIOHUOMIO--
--HUOMIOHUOMIOHUOMIOHUOMIOHUOMIOHUOMIO--
REMEND
//Kommentti kertoo lukualueen, jonka voi tallentaa
//kyseisen kokoiseen palaan!!
Const IntSize = 4 //-2147483647 - 2147483647
Const ShortSize = 2 //0 - 65536
Const CharSize = 1 //0-255
Type STREAM
Field name As String
Field id As Byte //Byte, emme tarvitse yli 255 ID:tä :D
Field buffer As Integer //Pakko olla integer, muuten ei mahdu
Field bufsize As Byte //Et varmaankaan varaa yli 255 tavua muistia...
End Type
basic.STREAM = New( STREAM )
basic\name = "Basic stream"
basic\id = 0 //0 riittää, id muutetaan InitStream-funktiolla
basic\bufsize = IntSize //Tähän bufferin koko!
//Bufferin koolla tullaan pian alustamaan streamin muisti!
InitStream( ConvertToInteger( basic ) ) //Noin :D
If TESTING Then
AddText basic\name
AddText Str( basic\id )
AddText Str( PeekInt( basic\buffer, 0) )
AddText Str( basic\bufsize )
PokeInt basic\buffer, 0, 352353
AddText basic\name
AddText Str( basic\id )
AddText Str( PeekInt( basic\buffer, 0) )
AddText Str( basic\bufsize )
DrawScreen
WaitKey
End
EndIf
Function InitStream( _streamType ) //Alusta aina streami!
rtn.STREAM = ConvertToType( _streamType )
rtn\buffer = MakeMEMBlock( rtn\bufsize )
If ( First( STREAM ) = NULL ) Then Return 0
If ( Before( rtn ) = NULL ) Then Return 0
tmp.STREAM = Before( rtn )
rtn\id = tmp\id + 1
EndFunction
Function StreamOut( _streamType, _debug = 0 )
rtn.STREAM = ConvertToType( _streamType )
If _debug = 1 Then Print( rtn\name )
Select rtn\bufsize
Case 1
Return PeekByte( rtn\buffer, 0 )
Case 2
Return PeekShort( rtn\buffer, 0 )
Case 4
Return PeekInt( rtn\buffer, 0 )
Default
MakeError( "INVALID BUFFER SIZE OR STREAM NOT INITIALIZED!" )
EndSelect
EndFunction
Function StreamIn( _streamType, _value, _debug = 0 )
rtn.STREAM = ConvertToType( _streamType )
If _debug = 1 Then Print( rtn\name )
Select rtn\bufsize
Case 1
PokeByte rtn\buffer, 0, _value
Case 2
PokeShort rtn\buffer, 0, _value
Case 4
PokeInt rtn\buffer, 0, _value
Default
MakeError( "INVALID BUFFER SIZE OR STREAM NOT INITIALIZED!" )
EndSelect
EndFunction