Initial data commit
This commit is contained in:
parent
72d218235f
commit
f23f22d71c
199087 changed files with 3378941 additions and 0 deletions
|
|
@ -0,0 +1,106 @@
|
|||
global values$, keys$
|
||||
dim values$[1]
|
||||
dim keys$[1]
|
||||
|
||||
call updateKey("a","apple")
|
||||
call updateKey("b","banana")
|
||||
call updateKey("c","cucumber")
|
||||
|
||||
gosub show
|
||||
|
||||
print "I like to eat a " + getValue$("c") + " on my salad."
|
||||
|
||||
call deleteKey("b")
|
||||
call updateKey("c","carrot")
|
||||
call updateKey("e","endive")
|
||||
gosub show
|
||||
|
||||
end
|
||||
|
||||
show:
|
||||
for t = 0 to countKeys()-1
|
||||
print getKeyByIndex$(t) + " " + getValueByIndex$(t)
|
||||
next t
|
||||
print
|
||||
return
|
||||
|
||||
subroutine updateKey(key$, value$)
|
||||
# update or add an item
|
||||
i=findKey(key$)
|
||||
if i=-1 then
|
||||
i = freeKey()
|
||||
keys$[i] = key$
|
||||
end if
|
||||
values$[i] = value$
|
||||
end subroutine
|
||||
|
||||
subroutine deleteKey(key$)
|
||||
# delete by clearing the key
|
||||
i=findKey(key$)
|
||||
if i<>-1 then
|
||||
keys$[i] = ""
|
||||
end if
|
||||
end subroutine
|
||||
|
||||
function freeKey()
|
||||
# find index of a free element in the array
|
||||
for n = 0 to keys$[?]-1
|
||||
if keys$[n]="" then return n
|
||||
next n
|
||||
redim keys$[n+1]
|
||||
redim values$[n+1]
|
||||
return n
|
||||
end function
|
||||
|
||||
function findKey(key$)
|
||||
# return index or -1 if not found
|
||||
for n = 0 to keys$[?]-1
|
||||
if key$=keys$[n] then return n
|
||||
next n
|
||||
return -1
|
||||
end function
|
||||
|
||||
function getValue$(key$)
|
||||
# return a value by the key or "" if not existing
|
||||
i=findKey(key$)
|
||||
if i=-1 then
|
||||
return ""
|
||||
end if
|
||||
return values$[i]
|
||||
end function
|
||||
|
||||
function countKeys()
|
||||
# return number of items
|
||||
# remember to skip the empty keys (deleted ones)
|
||||
k = 0
|
||||
for n = 0 to keys$[?] -1
|
||||
if keys$[n]<>"" then k++
|
||||
next n
|
||||
return k
|
||||
end function
|
||||
|
||||
function getValueByIndex$(i)
|
||||
# get a value by the index
|
||||
# remember to skip the empty keys (deleted ones)
|
||||
k = 0
|
||||
for n = 0 to keys$[?] -1
|
||||
if keys$[n]<>"" then
|
||||
if k=i then return values$[k]
|
||||
k++
|
||||
endif
|
||||
next n
|
||||
return ""
|
||||
end function
|
||||
|
||||
function getKeyByIndex$(i)
|
||||
# get a key by the index
|
||||
# remember to skip the empty keys (deleted ones)
|
||||
k = 0
|
||||
for n = 0 to keys$[?] -1
|
||||
if keys$[n]<>"" then
|
||||
if k=i then return keys$[k]
|
||||
k++
|
||||
endif
|
||||
next n
|
||||
return ""
|
||||
end function
|
||||
Loading…
Add table
Add a link
Reference in a new issue