Skit3000 Admin Team
Joined: 11 May 2002 Posts: 2166 Location: The Netherlands
|
Posted: Sat Apr 10, 2004 11:48 am Post subject: Some "array" commands and functions... |
|
|
Hello,
I needed a kind of array commands and functions in my scripts when I wrote a little program. That's why I made an (includable) script of it which can be freely used. Only the basic things are in, like creating an array and filling it with items, and a function to get the value of an item. I hope the rem lines explain enough, otherwise please ask...
Code: | # ----------------------------------------------------------------------------------- #
# #
# Commands: #
# - array create,<array/list number> #
# - array clear,<array number> #
# - array close,<array number> #
# - array set,<array number>,<first value>,<second value>,<thirth value>,<etc...> #
# #
# Functions: #
# - @array(set,<array number>,<first value>,<second value>,<thirth value>,<etc...>) #
# #
# ----------------------------------------------------------------------------------- #
#define command,array
#define function,array
# Create the array, just like you do with lists.
array create,1
# You can set array items with "array set". You can separate values by using commas. You can
# also just use another method, like the one below.
array set,1,[Amsterdam][Kalverstraat][162],D. Utchman
array set,1,[London][Buckingham Palace Road][7a],Ms. Q.U. Een
array set,1,[London][Buckingham Palace Road][7b],H. Ouskeeper
array set,1,[London][Buckingham Palace Road][7c],H.I.S. Neighbour
# Retrieve the data from the array.
info "In London, Buckingham Palace Road 7b lives "@array(value,1,[London][Buckingham Palace Road][7b]).
# Clear the array items.
array clear,1
rem All combinations somebody can make with two dices:
array set,1,1,1,two
array set,1,1,2,three
array set,1,1,3,four
array set,1,1,4,five
array set,1,1,5,six
array set,1,1,6,seven
array set,1,2,1,three
array set,1,2,2,four
array set,1,2,3,five
array set,1,2,4,six
array set,1,2,5,seven
array set,1,2,6,eight
array set,1,3,1,four
array set,1,3,2,five
array set,1,3,3,six
array set,1,3,4,seven
array set,1,3,5,eight
array set,1,3,6,nine
array set,1,4,1,five
array set,1,4,2,six
array set,1,4,3,seven
array set,1,4,4,eight
array set,1,4,5,nine
array set,1,4,6,ten
array set,1,5,1,six
array set,1,5,2,seven
array set,1,5,3,eight
array set,1,5,4,nine
array set,1,5,5,ten
array set,1,5,6,eleven
array set,1,6,1,seven
array set,1,6,2,eight
array set,1,6,3,nine
array set,1,6,4,ten
array set,1,6,5,eleven
array set,1,6,6,twelve
# Get the numbers that were trown.
%%Dice1 = @input("What was the number of the first dice? (1-6)")
%%Dice2 = @input("What was the number of the second dice? (1-6)")
# And show the sum of them
info Than you got @array(value,1,%%Dice1,%%Dice2) points!
# Another way to achieve the same:
# array set,1,2,two
# array set,1,3,three
# array set,1,4,four
# array set,1,5,five
# array set,1,6,six
# array set,1,7,seven
# array set,1,8,eight
# array set,1,9,nine
# array set,1,10,ten
# array set,1,11,eleven
# array set,1,12,twelve
# %%Dice1 = @input("What was the number of the first dice? (1-6)")
# %%Dice2 = @input("What was the number of the second dice? (1-6)")
# info You got @array(value,1,@sum(%%Dice1,%%Dice2)) points!
array close,1
exit
:Array
if @equal(%1,create)
list create,%2,sorted
end
if @equal(%1,close)
list close,%2
end
if @equal(%1,clear)
list clear,%2
end
if @equal(%1,set)
%%temp = @trim(%3@chr(0)%4@chr(0)%5@chr(0)%6@chr(0)%7@chr(0)%8@chr(0)%9)
if @greater(@count(%2),0)
list seek,%2,0
end
if @match(%2,@chr(0)@chr(0)%%temp)
list put,%2,@chr(0)@chr(0)%%temp
else
list add,%2,@chr(0)@chr(0)%%temp
end
end
if @equal(%1,value)
%%temp = @trim(%3@chr(0)%4@chr(0)%5@chr(0)%6@chr(0)%7@chr(0)%8@chr(0)%9)
if @greater(@count(%2),0)
list seek,%2,0
end
if @match(%2,@chr(0)@chr(0)%%temp)
%%temp = @trim(@item(%2))
%%temp2 =
repeat
%%temp2 = @substr(%%temp,1,1)%%temp2
%%temp = @strdel(%%temp,1,1)
until @equal(%%temp,)
if @greater(@pos(@chr(0),%%temp2),0)
%%temp2 = @trim(@substr(%%temp2,1,@pos(@chr(0),%%temp2)))
end
repeat
%%temp = @substr(%%temp2,1,1)%%temp
%%temp2 = @strdel(%%temp2,1,1)
until @equal(%%temp2,)
exit %%temp
else
rem No matches, return nothing?
end
end
exit |
_________________ [ Add autocomplete functionality to your VDS IDE windows! ]
Voor Nederlandse beginners met VDS: bekijk ook eens deze tutorial! |
|