ASP Dictionary Object

Tips >> ASP

In order to learn how Dictionary object works we will create a small script which will translate number 1 to 10 from English to Spanish.

translate.asp  
<%
SET MyDictionary=CreateObject("Scripting.Dictionary")
MyDictionary.Add "one","uno"
MyDictionary.Add "two","dos"
MyDictionary.Add "three","tres"
MyDictionary.Add "four","cuatro"
MyDictionary.Add "five","cinco"
MyDictionary.Add "six","seis"
MyDictionary.Add "seven","siete"
MyDictionary.Add "eight","ocho"
MyDictionary.Add "nine","nueve"
MyDictionary.Add "ten","diez"
EnglishNumber="four"
SpanishNumber=MyDictionary.Item (EnglishNumber)
Response.Write(SpanishNumber)
%>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18


HOW THE SCRIPT WORKS :-

  • First we have define a Dictionary named "Mydictionary" (line 2).
  • We have add to the dictionary the data corresponding to the different number in English and Spanish (lines 4 to 13).
    When adding pairs of English and Spanish numbers to the Dictionary object, the number written in English is a Key, and the number written in Spanish a Item.
  • In line 15 we have defined a variable named EnglishNumber and we have provided a value for this variable (in red).
  • In line 16 we have defined a new variable (SpanishNumber) and we have get its value from the dictionary by indicating we want to get the Item corresponding to a specific Key (EnglishNumber).
  • In line 17 the translated number is send to our visitor. The response will be "cuatro".

WE CAN CHANGE THE VALUE IN OUR DICTIONARY BY USING THIS KIND OF CODE :-

  • MyDictionary.Key ("one")="1"
    Example
    In our original script the key "one" will be substitute by a new key value ("1"). The item "uno" will not be changed.
  • MyDictionary.Item ("two")="2"
    Example
    In our original script the item corresponding to key "two" will be substitute by a new item value ("2"). The key "two" will not be changed.

WE CAN DISPLAY THE NUMBER OF ELEMENTS PAIRS IN THE DICTIONARY BY USING THIS CODE :-

  • MyDictionary.Count

    Example

If we want to check whether a key exists in our dictionary before responding to our visitor we will use this kind of comparisoncode

if MyDictionary.Exists ("ten")=True then
Response.Write("this key is included in the dictionary")
else
Response.Write("Error: no such a key in the dictionary")
end if


Example: Translation of a number from English to Spanish

This example uses most of the elements explained above.

  • If there is no information posted to the script (line 6), the script will send the visitor the form in the Sendform() subrouting (lines 34-40).
  • When a request to translate a number, the script will check whether the number corresponds to a key in the dictionary (line 25). If the response is affirmative the corresponding item is send to the visitor. In case the key does not exists, a "No translation available" response is send to the visitor (line 29).
translation.asp try !  
<html>
<title>Page under construction</title>
<body>
<%
if request.form="" then
Sendform()
else
SET MyDictionary=CreateObject("Scripting.Dictionary")

MyDictionary.Add "one","uno"
MyDictionary.Add "two","DOS"
MyDictionary.Add "three","tres"
MyDictionary.Add "four","cuatro"
MyDictionary.Add "five","cinco"
MyDictionary.Add "six","seis"
MyDictionary.Add "seven","siete"
MyDictionary.Add "eight","ocho"
MyDictionary.Add "nine","nueve"
MyDictionary.Add "ten","diez"

EnglishNumber=request.form("EnglishNumber")
Response.Write("English number: " & EnglishNumber)

if MyDictionary.Exists (EnglishNumber)=True then
SpanishNumber=MyDictionary.Item (EnglishNumber)
Response.Write("<BR>Spanish number: " & SpanishNumber)
else
Response.Write("<BR>Spanish number: " & "No translation available")
end if
end if
%>

<% Sub Sendform() %>
<form action=translation.asp method=post>
Write a number in English<BR>
<input type=text size=30 name=EnglishNumber><BR>
<input type=submit Value="Enter to my Secret Page">
</form>
<% End Sub %>

</body>
</html>

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43


Example: Password protected information

In this example keys and items are used as usernames and passwords. It is very similar to the one above.

secretpage.asp try !  
<%
if request.form="" then
Sendform()
else
SET MyDictionary=CreateObject("Scripting.Dictionary")
MyDictionary.Add "John","123"
MyDictionary.Add "Peter","456"
MyDictionary.Add "Anna","789"
Username=request.form("Username")
Password=request.form("password")
if MyDictionary.Exists (Username)=True AND Password=MyDictionary.Item (Username) then
SecretInfo()
else
Response.Write("Error: incorrect userame or password")
end if
end if
%>

<% Sub Sendform() %>
<form action=secretpage.asp method=post>
Username: <input type=text size=30 name=Username><BR>
Password: <input type=password size=30 name=Password><BR>
<input type=submit Value="Submit">
</form>
<% End Sub %>

<% Sub SecretInfo() %>
<html>
<head>
<title>My Secret Page</title>
</head>
<body bgcolor=FFFFFF>
<center>
<h1>This is my secret info</h1>
Hello !<BR>
Do you want to be my friend?
</center>
</body>
</html>
<% End Sub %>

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42

 

 

 
E-mail : sales@virtualsplat.com
Phone : +91-9892413501

+91-9967648641

+91-9967648641