Reply
 
LinkBack Thread Tools Search this Thread Display Modes
  #1   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 99
Default Dictionary - Add method parameters

I checked many posts about the Scripting.Dictionary and still cannot figure
out what the two parameters are, the key and a description or an item and a
key or what? Then what is an item (or the description) and what can it be
used for?
If I have a description for each key, can I store it alongside the key and
use it later after I found its corresponding key?
My problem is as follows: I have a text file with 114000 lines. On each
line, there is a contract number and a 3 character field (a code) that I must
use to determine the template to use. Can I use the dictionary to solve my
problem or not?
The Add method is generally used in this manner:
Dic.Add CStr(Item), Item
or
Dic.Add sh.Name, CStr(sh.Name)
Could I use
Dic.Add strContract, strCode
If yes, then how do I search and display a specific contract number and its
corresponding code?
If no, should I use a Dictionary and a dynamic array instead?
Thanks



--
Jac Tremblay
  #2   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 11,272
Default Dictionary - Add method parameters

The example in MSDN seems to show it well

Dim d ' Create a variable.
Set d = CreateObject("Scripting.Dictionary")
d.Add "a", "Athens" ' Add some keys and items.
d.Add "b", "Belgrade"
d.Add "c", "Cairo"

Check if it exists

If d.Exists("c") Then
msg = "Specified key exists."
Else
msg = "Specified key doesn't exist."
End If

Use items

a = d.Items ' Get the items.
For i = 0 To d.Count -1 ' Iterate the array.
s = s & a(i) & "<BR" ' Create return string.
Next

Use keys

a = d.Keys ' Get the keys.
For i = 0 To d.Count -1 ' Iterate the array.
s = s & a(i) & "<BR" ' Return results.
Next


--

HTH

RP
(remove nothere from the email address if mailing direct)


"Jac Tremblay" wrote in message
...
I checked many posts about the Scripting.Dictionary and still cannot

figure
out what the two parameters are, the key and a description or an item and

a
key or what? Then what is an item (or the description) and what can it be
used for?
If I have a description for each key, can I store it alongside the key and
use it later after I found its corresponding key?
My problem is as follows: I have a text file with 114000 lines. On each
line, there is a contract number and a 3 character field (a code) that I

must
use to determine the template to use. Can I use the dictionary to solve my
problem or not?
The Add method is generally used in this manner:
Dic.Add CStr(Item), Item
or
Dic.Add sh.Name, CStr(sh.Name)
Could I use
Dic.Add strContract, strCode
If yes, then how do I search and display a specific contract number and

its
corresponding code?
If no, should I use a Dictionary and a dynamic array instead?
Thanks



--
Jac Tremblay



  #3   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 27,285
Default Dictionary - Add method parameters

so
Dic.Add CStr(contract_number), template_code

if you will look up using the contract number to get the template code.

--
Regards,
Tom Ogilvy


"Bob Phillips" wrote in message
...
The example in MSDN seems to show it well

Dim d ' Create a variable.
Set d = CreateObject("Scripting.Dictionary")
d.Add "a", "Athens" ' Add some keys and items.
d.Add "b", "Belgrade"
d.Add "c", "Cairo"

Check if it exists

If d.Exists("c") Then
msg = "Specified key exists."
Else
msg = "Specified key doesn't exist."
End If

Use items

a = d.Items ' Get the items.
For i = 0 To d.Count -1 ' Iterate the array.
s = s & a(i) & "<BR" ' Create return string.
Next

Use keys

a = d.Keys ' Get the keys.
For i = 0 To d.Count -1 ' Iterate the array.
s = s & a(i) & "<BR" ' Return results.
Next


--

HTH

RP
(remove nothere from the email address if mailing direct)


"Jac Tremblay" wrote in message
...
I checked many posts about the Scripting.Dictionary and still cannot

figure
out what the two parameters are, the key and a description or an item

and
a
key or what? Then what is an item (or the description) and what can it

be
used for?
If I have a description for each key, can I store it alongside the key

and
use it later after I found its corresponding key?
My problem is as follows: I have a text file with 114000 lines. On each
line, there is a contract number and a 3 character field (a code) that I

must
use to determine the template to use. Can I use the dictionary to solve

my
problem or not?
The Add method is generally used in this manner:
Dic.Add CStr(Item), Item
or
Dic.Add sh.Name, CStr(sh.Name)
Could I use
Dic.Add strContract, strCode
If yes, then how do I search and display a specific contract number and

its
corresponding code?
If no, should I use a Dictionary and a dynamic array instead?
Thanks



--
Jac Tremblay





  #4   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 99
Default Dictionary - Add method parameters

Hi Tom,
Why do you convert to string the contract number and not the template code
(or both)?
Thanks for your reply.


"Tom Ogilvy" wrote:

so
Dic.Add CStr(contract_number), template_code

if you will look up using the contract number to get the template code.

--
Regards,
Tom Ogilvy


"Bob Phillips" wrote in message
...
The example in MSDN seems to show it well

Dim d ' Create a variable.
Set d = CreateObject("Scripting.Dictionary")
d.Add "a", "Athens" ' Add some keys and items.
d.Add "b", "Belgrade"
d.Add "c", "Cairo"

Check if it exists

If d.Exists("c") Then
msg = "Specified key exists."
Else
msg = "Specified key doesn't exist."
End If

Use items

a = d.Items ' Get the items.
For i = 0 To d.Count -1 ' Iterate the array.
s = s & a(i) & "<BR" ' Create return string.
Next

Use keys

a = d.Keys ' Get the keys.
For i = 0 To d.Count -1 ' Iterate the array.
s = s & a(i) & "<BR" ' Return results.
Next


--

HTH

RP
(remove nothere from the email address if mailing direct)


"Jac Tremblay" wrote in message
...
I checked many posts about the Scripting.Dictionary and still cannot

figure
out what the two parameters are, the key and a description or an item

and
a
key or what? Then what is an item (or the description) and what can it

be
used for?
If I have a description for each key, can I store it alongside the key

and
use it later after I found its corresponding key?
My problem is as follows: I have a text file with 114000 lines. On each
line, there is a contract number and a 3 character field (a code) that I

must
use to determine the template to use. Can I use the dictionary to solve

my
problem or not?
The Add method is generally used in this manner:
Dic.Add CStr(Item), Item
or
Dic.Add sh.Name, CStr(sh.Name)
Could I use
Dic.Add strContract, strCode
If yes, then how do I search and display a specific contract number and

its
corresponding code?
If no, should I use a Dictionary and a dynamic array instead?
Thanks



--
Jac Tremblay






  #5   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 27,285
Default Dictionary - Add method parameters

out of habit from using collections. You can use a number

Sub AB()
Set d = CreateObject("Scripting.Dictionary")
d.Add 12, "Athens" ' Add some keys and items.
d.Add 18, "Belgrade"
d.Add 32, "Cairo"

Debug.Print d.Item(32)

End Sub

Will Return Cairo


--
Regards,
Tom Ogilvy



"Jac Tremblay" wrote in message
...
Hi Tom,
Why do you convert to string the contract number and not the template code
(or both)?
Thanks for your reply.


"Tom Ogilvy" wrote:

so
Dic.Add CStr(contract_number), template_code

if you will look up using the contract number to get the template code.

--
Regards,
Tom Ogilvy


"Bob Phillips" wrote in message
...
The example in MSDN seems to show it well

Dim d ' Create a variable.
Set d = CreateObject("Scripting.Dictionary")
d.Add "a", "Athens" ' Add some keys and items.
d.Add "b", "Belgrade"
d.Add "c", "Cairo"

Check if it exists

If d.Exists("c") Then
msg = "Specified key exists."
Else
msg = "Specified key doesn't exist."
End If

Use items

a = d.Items ' Get the items.
For i = 0 To d.Count -1 ' Iterate the array.
s = s & a(i) & "<BR" ' Create return string.
Next

Use keys

a = d.Keys ' Get the keys.
For i = 0 To d.Count -1 ' Iterate the array.
s = s & a(i) & "<BR" ' Return results.
Next


--

HTH

RP
(remove nothere from the email address if mailing direct)


"Jac Tremblay" wrote in message
...
I checked many posts about the Scripting.Dictionary and still cannot
figure
out what the two parameters are, the key and a description or an

item
and
a
key or what? Then what is an item (or the description) and what can

it
be
used for?
If I have a description for each key, can I store it alongside the

key
and
use it later after I found its corresponding key?
My problem is as follows: I have a text file with 114000 lines. On

each
line, there is a contract number and a 3 character field (a code)

that I
must
use to determine the template to use. Can I use the dictionary to

solve
my
problem or not?
The Add method is generally used in this manner:
Dic.Add CStr(Item), Item
or
Dic.Add sh.Name, CStr(sh.Name)
Could I use
Dic.Add strContract, strCode
If yes, then how do I search and display a specific contract number

and
its
corresponding code?
If no, should I use a Dictionary and a dynamic array instead?
Thanks



--
Jac Tremblay









  #6   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 99
Default Dictionary - Add method parameters

Hi Bob,
Your reply is quite helpful. I had only checked the F1 key and could not get
any help on the Scripting.Dictionary; only the Word Dictionary. Next time, I
will look in MSDN first.
Now that I know I can use the dictionary for my case, I have one more
question. When I check if a specific key exists, then do I absolutely have to
iterate through the items to find out its index (0 to .count - 1)?
Thank you for your comment.

"Bob Phillips" wrote:

The example in MSDN seems to show it well

Dim d ' Create a variable.
Set d = CreateObject("Scripting.Dictionary")
d.Add "a", "Athens" ' Add some keys and items.
d.Add "b", "Belgrade"
d.Add "c", "Cairo"

Check if it exists

If d.Exists("c") Then
msg = "Specified key exists."
Else
msg = "Specified key doesn't exist."
End If

Use items

a = d.Items ' Get the items.
For i = 0 To d.Count -1 ' Iterate the array.
s = s & a(i) & "<BR" ' Create return string.
Next

Use keys

a = d.Keys ' Get the keys.
For i = 0 To d.Count -1 ' Iterate the array.
s = s & a(i) & "<BR" ' Return results.
Next


--

HTH

RP
(remove nothere from the email address if mailing direct)


"Jac Tremblay" wrote in message
...
I checked many posts about the Scripting.Dictionary and still cannot

figure
out what the two parameters are, the key and a description or an item and

a
key or what? Then what is an item (or the description) and what can it be
used for?
If I have a description for each key, can I store it alongside the key and
use it later after I found its corresponding key?
My problem is as follows: I have a text file with 114000 lines. On each
line, there is a contract number and a 3 character field (a code) that I

must
use to determine the template to use. Can I use the dictionary to solve my
problem or not?
The Add method is generally used in this manner:
Dic.Add CStr(Item), Item
or
Dic.Add sh.Name, CStr(sh.Name)
Could I use
Dic.Add strContract, strCode
If yes, then how do I search and display a specific contract number and

its
corresponding code?
If no, should I use a Dictionary and a dynamic array instead?
Thanks



--
Jac Tremblay




  #7   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 11,272
Default Dictionary - Add method parameters

Hi Jac,

Yes I guess so, but why would you need the index, the Dictionary object is
not index based. If you want the value, try

If d.Exists("c") Then
MsgBox d.Item("c")
End If


--

HTH

RP
(remove nothere from the email address if mailing direct)


"Jac Tremblay" wrote in message
...
Hi Bob,
Your reply is quite helpful. I had only checked the F1 key and could not

get
any help on the Scripting.Dictionary; only the Word Dictionary. Next time,

I
will look in MSDN first.
Now that I know I can use the dictionary for my case, I have one more
question. When I check if a specific key exists, then do I absolutely have

to
iterate through the items to find out its index (0 to .count - 1)?
Thank you for your comment.

"Bob Phillips" wrote:

The example in MSDN seems to show it well

Dim d ' Create a variable.
Set d = CreateObject("Scripting.Dictionary")
d.Add "a", "Athens" ' Add some keys and items.
d.Add "b", "Belgrade"
d.Add "c", "Cairo"

Check if it exists

If d.Exists("c") Then
msg = "Specified key exists."
Else
msg = "Specified key doesn't exist."
End If

Use items

a = d.Items ' Get the items.
For i = 0 To d.Count -1 ' Iterate the array.
s = s & a(i) & "<BR" ' Create return string.
Next

Use keys

a = d.Keys ' Get the keys.
For i = 0 To d.Count -1 ' Iterate the array.
s = s & a(i) & "<BR" ' Return results.
Next


--

HTH

RP
(remove nothere from the email address if mailing direct)


"Jac Tremblay" wrote in message
...
I checked many posts about the Scripting.Dictionary and still cannot

figure
out what the two parameters are, the key and a description or an item

and
a
key or what? Then what is an item (or the description) and what can it

be
used for?
If I have a description for each key, can I store it alongside the key

and
use it later after I found its corresponding key?
My problem is as follows: I have a text file with 114000 lines. On

each
line, there is a contract number and a 3 character field (a code) that

I
must
use to determine the template to use. Can I use the dictionary to

solve my
problem or not?
The Add method is generally used in this manner:
Dic.Add CStr(Item), Item
or
Dic.Add sh.Name, CStr(sh.Name)
Could I use
Dic.Add strContract, strCode
If yes, then how do I search and display a specific contract number

and
its
corresponding code?
If no, should I use a Dictionary and a dynamic array instead?
Thanks



--
Jac Tremblay






  #8   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 99
Default Dictionary - Add method parameters

Hi again Bob,
The reason is that I need the corresponding template code to determine which
template to use for a particular contract number.

"Bob Phillips" wrote:

Hi Jac,

Yes I guess so, but why would you need the index, the Dictionary object is
not index based. If you want the value, try

If d.Exists("c") Then
MsgBox d.Item("c")
End If


--

HTH

RP
(remove nothere from the email address if mailing direct)


"Jac Tremblay" wrote in message
...
Hi Bob,
Your reply is quite helpful. I had only checked the F1 key and could not

get
any help on the Scripting.Dictionary; only the Word Dictionary. Next time,

I
will look in MSDN first.
Now that I know I can use the dictionary for my case, I have one more
question. When I check if a specific key exists, then do I absolutely have

to
iterate through the items to find out its index (0 to .count - 1)?
Thank you for your comment.

"Bob Phillips" wrote:

The example in MSDN seems to show it well

Dim d ' Create a variable.
Set d = CreateObject("Scripting.Dictionary")
d.Add "a", "Athens" ' Add some keys and items.
d.Add "b", "Belgrade"
d.Add "c", "Cairo"

Check if it exists

If d.Exists("c") Then
msg = "Specified key exists."
Else
msg = "Specified key doesn't exist."
End If

Use items

a = d.Items ' Get the items.
For i = 0 To d.Count -1 ' Iterate the array.
s = s & a(i) & "<BR" ' Create return string.
Next

Use keys

a = d.Keys ' Get the keys.
For i = 0 To d.Count -1 ' Iterate the array.
s = s & a(i) & "<BR" ' Return results.
Next


--

HTH

RP
(remove nothere from the email address if mailing direct)


"Jac Tremblay" wrote in message
...
I checked many posts about the Scripting.Dictionary and still cannot
figure
out what the two parameters are, the key and a description or an item

and
a
key or what? Then what is an item (or the description) and what can it

be
used for?
If I have a description for each key, can I store it alongside the key

and
use it later after I found its corresponding key?
My problem is as follows: I have a text file with 114000 lines. On

each
line, there is a contract number and a 3 character field (a code) that

I
must
use to determine the template to use. Can I use the dictionary to

solve my
problem or not?
The Add method is generally used in this manner:
Dic.Add CStr(Item), Item
or
Dic.Add sh.Name, CStr(sh.Name)
Could I use
Dic.Add strContract, strCode
If yes, then how do I search and display a specific contract number

and
its
corresponding code?
If no, should I use a Dictionary and a dynamic array instead?
Thanks



--
Jac Tremblay






  #9   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 27,285
Default Dictionary - Add method parameters

That is the whole point. You use the contract number to retrieve the
contract code. You don't need the index number.
In Bob's example, the sample code:

If d.Exists("c") Then
MsgBox d.Item("c")
End If



should return Cairo in the message box.

--
Regards,
Tom Ogilvy



"Jac Tremblay" wrote in message
...
Hi again Bob,
The reason is that I need the corresponding template code to determine

which
template to use for a particular contract number.

"Bob Phillips" wrote:

Hi Jac,

Yes I guess so, but why would you need the index, the Dictionary object

is
not index based. If you want the value, try

If d.Exists("c") Then
MsgBox d.Item("c")
End If


--

HTH

RP
(remove nothere from the email address if mailing direct)


"Jac Tremblay" wrote in message
...
Hi Bob,
Your reply is quite helpful. I had only checked the F1 key and could

not
get
any help on the Scripting.Dictionary; only the Word Dictionary. Next

time,
I
will look in MSDN first.
Now that I know I can use the dictionary for my case, I have one more
question. When I check if a specific key exists, then do I absolutely

have
to
iterate through the items to find out its index (0 to .count - 1)?
Thank you for your comment.

"Bob Phillips" wrote:

The example in MSDN seems to show it well

Dim d ' Create a variable.
Set d = CreateObject("Scripting.Dictionary")
d.Add "a", "Athens" ' Add some keys and items.
d.Add "b", "Belgrade"
d.Add "c", "Cairo"

Check if it exists

If d.Exists("c") Then
msg = "Specified key exists."
Else
msg = "Specified key doesn't exist."
End If

Use items

a = d.Items ' Get the items.
For i = 0 To d.Count -1 ' Iterate the array.
s = s & a(i) & "<BR" ' Create return string.
Next

Use keys

a = d.Keys ' Get the keys.
For i = 0 To d.Count -1 ' Iterate the array.
s = s & a(i) & "<BR" ' Return results.
Next


--

HTH

RP
(remove nothere from the email address if mailing direct)


"Jac Tremblay" wrote in message
...
I checked many posts about the Scripting.Dictionary and still

cannot
figure
out what the two parameters are, the key and a description or an

item
and
a
key or what? Then what is an item (or the description) and what

can it
be
used for?
If I have a description for each key, can I store it alongside the

key
and
use it later after I found its corresponding key?
My problem is as follows: I have a text file with 114000 lines. On

each
line, there is a contract number and a 3 character field (a code)

that
I
must
use to determine the template to use. Can I use the dictionary to

solve my
problem or not?
The Add method is generally used in this manner:
Dic.Add CStr(Item), Item
or
Dic.Add sh.Name, CStr(sh.Name)
Could I use
Dic.Add strContract, strCode
If yes, then how do I search and display a specific contract

number
and
its
corresponding code?
If no, should I use a Dictionary and a dynamic array instead?
Thanks



--
Jac Tremblay








  #10   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 99
Default Dictionary - Add method parameters

Hi Bob,
You are right again. I had not noticed that one could get the item value
directly like that. There is no need to make things more complicated than
they really are.
Thanks to you, and thanks to Tom who opened my eyes.


"Bob Phillips" wrote:

Hi Jac,

Yes I guess so, but why would you need the index, the Dictionary object is
not index based. If you want the value, try

If d.Exists("c") Then
MsgBox d.Item("c")
End If


--

HTH

RP
(remove nothere from the email address if mailing direct)


"Jac Tremblay" wrote in message
...
Hi Bob,
Your reply is quite helpful. I had only checked the F1 key and could not

get
any help on the Scripting.Dictionary; only the Word Dictionary. Next time,

I
will look in MSDN first.
Now that I know I can use the dictionary for my case, I have one more
question. When I check if a specific key exists, then do I absolutely have

to
iterate through the items to find out its index (0 to .count - 1)?
Thank you for your comment.

"Bob Phillips" wrote:

The example in MSDN seems to show it well

Dim d ' Create a variable.
Set d = CreateObject("Scripting.Dictionary")
d.Add "a", "Athens" ' Add some keys and items.
d.Add "b", "Belgrade"
d.Add "c", "Cairo"

Check if it exists

If d.Exists("c") Then
msg = "Specified key exists."
Else
msg = "Specified key doesn't exist."
End If

Use items

a = d.Items ' Get the items.
For i = 0 To d.Count -1 ' Iterate the array.
s = s & a(i) & "<BR" ' Create return string.
Next

Use keys

a = d.Keys ' Get the keys.
For i = 0 To d.Count -1 ' Iterate the array.
s = s & a(i) & "<BR" ' Return results.
Next


--

HTH

RP
(remove nothere from the email address if mailing direct)


"Jac Tremblay" wrote in message
...
I checked many posts about the Scripting.Dictionary and still cannot
figure
out what the two parameters are, the key and a description or an item

and
a
key or what? Then what is an item (or the description) and what can it

be
used for?
If I have a description for each key, can I store it alongside the key

and
use it later after I found its corresponding key?
My problem is as follows: I have a text file with 114000 lines. On

each
line, there is a contract number and a 3 character field (a code) that

I
must
use to determine the template to use. Can I use the dictionary to

solve my
problem or not?
The Add method is generally used in this manner:
Dic.Add CStr(Item), Item
or
Dic.Add sh.Name, CStr(sh.Name)
Could I use
Dic.Add strContract, strCode
If yes, then how do I search and display a specific contract number

and
its
corresponding code?
If no, should I use a Dictionary and a dynamic array instead?
Thanks



--
Jac Tremblay








Reply
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules

Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
Please post this thread a correct full method, method about Nast Runsome New Users to Excel 8 February 25th 08 03:29 PM
Please post this thread a complete correct method, method about te Nast Runsome New Users to Excel 0 February 23rd 08 09:42 PM
dictionary Libby Excel Programming 0 November 15th 04 12:53 PM
Parameters for Find method Martin[_17_] Excel Programming 1 August 6th 04 03:37 AM


All times are GMT +1. The time now is 11:29 PM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Copyright ©2004-2025 ExcelBanter.
The comments are property of their posters.
 

About Us

"It's about Microsoft Excel"