Initial data commit
This commit is contained in:
parent
72d218235f
commit
f23f22d71c
199087 changed files with 3378941 additions and 0 deletions
58
Task/History-variables/OxygenBasic/history-variables.basic
Normal file
58
Task/History-variables/OxygenBasic/history-variables.basic
Normal file
|
|
@ -0,0 +1,58 @@
|
|||
'============
|
||||
class History
|
||||
'============
|
||||
|
||||
indexbase 0
|
||||
|
||||
string buf
|
||||
sys ii,ld,pb
|
||||
|
||||
method constructor(sys n=1000, l=sizeof sys) {buf=nuls n*l : pb=strptr buf : ld=l : ii=0}
|
||||
method destructor () {clear}
|
||||
'
|
||||
method setup(sys n=1000, l=sizeof sys) {buf=nuls n*l : pb=strptr buf : ld=l : ii=0}
|
||||
method clear() {buf="" : pb=0 : ld=0 : ii=0}
|
||||
method max (sys i) {if i>ii{ii=i}}
|
||||
method count() as sys {return ii}
|
||||
method size () as sys {return ld}
|
||||
'
|
||||
method get (any*p,i) {copy @p, pb+i*ld,ld } 'out
|
||||
method add (any*p) {copy pb+ii*ld,@p,ld : ii++} 'in
|
||||
method put (any*p,sys i) {copy pb+i*ld,@p,ld : max i} 'in
|
||||
'
|
||||
end class
|
||||
|
||||
'====
|
||||
'TEST
|
||||
'====
|
||||
|
||||
'this works for fixed length types
|
||||
|
||||
'it will not work for types containing
|
||||
'volatile pointers. eg: string members
|
||||
|
||||
type vector double x,y,z
|
||||
|
||||
vector v
|
||||
|
||||
new History hv(1000,sizeof v) 'give number of records and variable size
|
||||
|
||||
sys i
|
||||
for i=0 to 9
|
||||
v<=i,i*10,i*100 'assign new values to vector
|
||||
hv.add v 'add to history
|
||||
next
|
||||
|
||||
string tab=chr(9) : cr=chr(13)+chr(10)
|
||||
string pr="Data History of v" cr cr
|
||||
pr+="n" tab "x" tab "y" tab "z" cr
|
||||
vector sv
|
||||
'
|
||||
for i=hv.count()-1 to 0 step -1
|
||||
hv.get sv,i
|
||||
pr+=i tab sv.x tab sv.y tab sv.z cr
|
||||
next
|
||||
|
||||
print pr 'result '9,90,900 : 8,80,800 ...
|
||||
|
||||
del hv
|
||||
Loading…
Add table
Add a link
Reference in a new issue