[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