[Info-vax] DCL's flaws (both scripting and UI)
Simon Clubley
clubley at remove_me.eisner.decus.org-Earth.UFP
Tue Jan 20 15:19:42 EST 2015
On 2015-01-20, David Froble <davef at tsoft-inc.com> wrote:
> Jan-Erik Soderholm wrote:
>
>> OK, so a similar data type exist in the base Basic distribution?
>> I thought not.
>
> If your position is dependent upon a particular data type existing, then
> I submit the following:
>
>
> 10 Dim L$(99,2) ! Create an array of dynamic string descriptors
>
> <some code to load L$(index,1) with a key value
> and L$(index,2) with the associated data>
>
;+++
> ! This would be the "tool" to retrive data based upon the key
> String Function RetriveData( <key> )
> For I% = 1% to 99%
> If <key> = L$(I%,1%)
> Then RetriveData = L$(I%,2%)
> Exit Function
> End If
> Next I%
> RetriveData = ""
> End Function
>
> ! This would be a retrival
> D$ = RetriveData( <some key> )
>
;---
Based on your previous message, what you don't seem to have picked up
on is that a dictionary is an associative data structure which means
that in a DCL which supported associative arrays/dictionaries the code
above between ";+++" and ";---" could be replaced with the following
single DCL line:
$ value = L{some_string_containing_the_key}
assuming you use "{" and "}" to denote an array index and L is the
associative array/dictionary. (You can't use "[" or "]" here as they
are already taken by DCL.)
You could also dynamically add an element to or delete an element from
the dictionary in a single DCL line as well.
Simon.
--
Simon Clubley, clubley at remove_me.eisner.decus.org-Earth.UFP
Microsoft: Bringing you 1980s technology to a 21st century world
More information about the Info-vax
mailing list