I'm looking for this for ages...
I have made a work-around for what I exactly mean, using a string as buffer:
Code: Select all
Global ReadPos = 1
Global Buffer$ = ""
;===
;WRITING FUNCTIONS
;===
Procedure WriteBufferSmall(Value) ;// MAX VALUE OF 99
Buffer$ + RSet(Str(Value),2,"0")
EndProcedure
Procedure WriteBufferMedium(Value) ;// MAX VALUE OF 9999
Buffer$ + RSet(Str(Value),4,"0")
EndProcedure
Procedure WriteBufferLarge(Value) ;// MAX VALUE OF 99999999
Buffer$ + RSet(Str(Value),8,"0")
EndProcedure
Procedure WriteBufferString(String$) ;// MAX STRING LENGTH OF 9999
Protected Length
Length = Len(String$)
WriteBufferMedium(Length)
Buffer$ + String$
EndProcedure
;===
;READING FUNCTIONS
;===
Procedure ReadBufferSmall()
Protected RetVal
RetVal = Val(Mid(Buffer$,ReadPos,2))
ReadPos + 2
ProcedureReturn RetVal
EndProcedure
Procedure ReadBufferMedium()
Protected RetVal
RetVal = Val(Mid(Buffer$,ReadPos,4))
ReadPos + 4
ProcedureReturn RetVal
EndProcedure
Procedure ReadBufferLarge()
Protected RetVal
RetVal = Val(Mid(Buffer$,ReadPos,8))
ReadPos + 8
ProcedureReturn RetVal
EndProcedure
Procedure.s ReadBufferString()
Protected Length, RetVal$
Length = ReadBufferMedium()
RetVal$ = Mid(Buffer$,ReadPos,Length)
ReadPos + Length
ProcedureReturn RetVal$
EndProcedure
;===
;CLEARING THE BUFFER
;===
Procedure ClearBuffer()
ReadPos = 1
Buffer$ = ""
EndProcedure
;===
;SIMPLE TEST
;===
WriteBufferSmall(12)
WriteBufferString("TEST STRING")
WriteBufferLarge(12345678)
WriteBufferMedium(1234)
Debug ReadBufferSmall() ;//-> 12
Debug ReadBufferString() ;//-> TEST STRING
Debug ReadBufferLarge() ;//-> 12345678
Debug ReadBufferMedium() ;//-> 1234
Debug "----------"
Debug "BUFFER: "+Buffer$
ClearBuffer()
Thanks in advance!