Programming for the Absolute Beginner 2nd Edition by Jerry Ford
I was excited to see that a second edition of Jerry Ford's programming book was recently released. It uses Just BASIC (all examples also compatible with Liberty BASIC) to teach the fundamentals of programming.
Jump to Amazon's link
Here is the table of contents. :-)
1 Introduction to Programming
2 Creating Programs with Just BASIC
3 Creating Graphical User Interfaces
4 Working with Variables and Arrays
5 Making Decisions with Conditional Logic
6 Using Loops to Process Data
7 Improving Program Organization with Functions and Subroutines
8 Working with Text Files
9 Working with Sound and Graphics
10 Arcade-Style Computer Game Development
11 Debugging Your Applications
Showing posts with label arrays. Show all posts
Showing posts with label arrays. Show all posts
Monday, August 22, 2016
Friday, July 15, 2016
Dictionary lookup - getting the keys
When you have an array you can simply loop through the contents to examine what's there, but when you have a dictionary you need to have the list of keys so that you can look up each value in the dictionary. For that, we need a getKeys$() function. The following function returns a single string with the keys from our global dictionary$ variable, each separated by a delimiter that we can specify.
function getKeys$(delimiter$)
pointer = 1
while pointer > 0
'get the next key
pointer = instr(dictionary$, "~key~", pointer)
if pointer then
keyPointer = pointer + 5
pointer = instr(dictionary$, "~value~", pointer)
key$ = mid$(dictionary$, keyPointer, pointer - keyPointer)
if instr(keyList$, "~key~" + key$) = 0 then
getKeys$ = getKeys$ + key$ + delimiter$
keyList$ = keyList$ + "~key~" + key$
end if
end if
wend
end function
Once have this string we can tease out each key. Here is an quick example that shows how to do this. The variable allKeys$ will hold all the keys, each separated by "~". Then we use the word$() function to get each key.
global dictionary$
call setValueByName "first", "Tom"
call setValueByName "last", "Thumb"
call setValueByName "phone", "555-555-1234"
allKeys$ = getKeys$("~")
print allKeys$
key = 1
while word$(allKeys$, key, "~") <> ""
key$ = word$(allKeys$, key, "~")
print "Key number "; key; " is "; key$
print " value = "; getValue$(key$)
key = key + 1
wend
Here is what the resulting output looks.
phone~last~first~
Key number 1 is phone
value = 555-555-1234
Key number 2 is last
value = Thumb
Key number 3 is first
value = Tom
Notice that the keys do not come out in the order that we put them in. This is typical in dictionary style lookup mechanisms. The ordering of keys is not guaranteed.
function getKeys$(delimiter$)
pointer = 1
while pointer > 0
'get the next key
pointer = instr(dictionary$, "~key~", pointer)
if pointer then
keyPointer = pointer + 5
pointer = instr(dictionary$, "~value~", pointer)
key$ = mid$(dictionary$, keyPointer, pointer - keyPointer)
if instr(keyList$, "~key~" + key$) = 0 then
getKeys$ = getKeys$ + key$ + delimiter$
keyList$ = keyList$ + "~key~" + key$
end if
end if
wend
end function
Once have this string we can tease out each key. Here is an quick example that shows how to do this. The variable allKeys$ will hold all the keys, each separated by "~". Then we use the word$() function to get each key.
global dictionary$
call setValueByName "first", "Tom"
call setValueByName "last", "Thumb"
call setValueByName "phone", "555-555-1234"
allKeys$ = getKeys$("~")
print allKeys$
key = 1
while word$(allKeys$, key, "~") <> ""
key$ = word$(allKeys$, key, "~")
print "Key number "; key; " is "; key$
print " value = "; getValue$(key$)
key = key + 1
wend
Here is what the resulting output looks.
phone~last~first~
Key number 1 is phone
value = 555-555-1234
Key number 2 is last
value = Thumb
Key number 3 is first
value = Tom
Notice that the keys do not come out in the order that we put them in. This is typical in dictionary style lookup mechanisms. The ordering of keys is not guaranteed.
Labels:
arrays,
basic,
dictionary,
hashmap,
keyed lookup,
keys,
liberty basic,
lookup by name,
named lookup,
qbasic,
tips and tricks
Subscribe to:
Posts (Atom)