Home All Groups Group Topic Archive Search About

how to make cookies into an array?

Author
29 Nov 2006 2:48 PM
André
Hi,

I need several cookies depending of an variable (x), so i defined a
HttpCookie() as an array.
My problems:
1)I get the error: Object reference not set to an instance of an object.
2)My second question is: how to request those cookies, because there is no
name?

Thanks
André


I did:
x=5
Dim cok(x) As New HttpCookie        'can't give a name to the cookie
.....

for k=1 to x
cok(k).Value = "cookie" & k
Response.Cookies.Add(cok(k))
next

-----------------------------------
recovering the cookies?
for i=1 to x
cok(i) = Request.Cookies("??")
next

Author
29 Nov 2006 3:49 PM
Tim Patrick
If you are using VB2005, you can switch to one of the Generic collections
that includes a key so that you can look up the cookie by name.

   Dim allCookies As Generic.Dictionary(Of String, HttpCookie)

Add new cookies to the dictionary this way:

   allCookies.Add(cookieName, theCookieItself)

Access the cookie this way:

   theRetrievedCookie = allCookies(cookieName)

-----
Tim Patrick - www.timaki.com
Start-to-Finish Visual Basic 2005

Show quoteHide quote
> Hi,
>
> I need several cookies depending of an variable (x), so i defined a
> HttpCookie() as an array.
> My problems:
> 1)I get the error: Object reference not set to an instance of an
> object.
> 2)My second question is: how to request those cookies, because there
> is no
> name?
> Thanks
> André
> I did:
> x=5
> Dim cok(x) As New HttpCookie        'can't give a name to the cookie
> ....
> for k=1 to x
> cok(k).Value = "cookie" & k
> Response.Cookies.Add(cok(k))
> next
> -----------------------------------
> recovering the cookies?
> for i=1 to x
> cok(i) = Request.Cookies("??")
> next
Author
29 Nov 2006 5:04 PM
André
Hi,

thanks for replying ...

I tried this (it must be a loop because i never don't know in advance how
many cookies i need)
But i get the error: "value of type string cannot be converted to
system.web.httpcookie"
How can i give the value of the cookie?
Thanks

Dim allCookies As Generic.Dictionary(Of String, HttpCookie)
        Dim i As Integer
        Dim cc(5) As String
        For i = 1 To 5
            allCookies.Add(cc(i), "test" & i)
        Next




Show quoteHide quote
"Tim Patrick" <inva***@invalid.com.invalid> schreef in bericht
news:e3b469762e408c8e1a20e2d96d8@newsgroups.comcast.net...
> If you are using VB2005, you can switch to one of the Generic collections
> that includes a key so that you can look up the cookie by name.
>
>   Dim allCookies As Generic.Dictionary(Of String, HttpCookie)
>
> Add new cookies to the dictionary this way:
>
>   allCookies.Add(cookieName, theCookieItself)
>
> Access the cookie this way:
>
>   theRetrievedCookie = allCookies(cookieName)
>
> -----
> Tim Patrick - www.timaki.com
> Start-to-Finish Visual Basic 2005
>
>> Hi,
>>
>> I need several cookies depending of an variable (x), so i defined a
>> HttpCookie() as an array.
>> My problems:
>> 1)I get the error: Object reference not set to an instance of an
>> object.
>> 2)My second question is: how to request those cookies, because there
>> is no
>> name?
>> Thanks
>> André
>> I did:
>> x=5
>> Dim cok(x) As New HttpCookie        'can't give a name to the cookie
>> ....
>> for k=1 to x
>> cok(k).Value = "cookie" & k
>> Response.Cookies.Add(cok(k))
>> next
>> -----------------------------------
>> recovering the cookies?
>> for i=1 to x
>> cok(i) = Request.Cookies("??")
>> next
>
>
Author
29 Nov 2006 5:44 PM
Tim Patrick
But you are trying to convert "test1" to a cookie. That is a string, not
a cookie. You must specifically create an instance of HttpCookie, fill in
its constructor or fields as needed, and then store it. I haven't used that
object myself, but the code would be something like this.

Dim allCookies As Generic.Dictionary(Of String, HttpCookie)
Dim oneCookie As HttpCookie
Dim i As Integer

For counter = 1 To 5
   oneCookie = New HttpCookie
   ' !!! Fill in all of oneCookie's fields here, then...
   allCookies.Add("test" & counter, oneCookie)
Next counter

-----
Tim Patrick - www.timaki.com
Start-to-Finish Visual Basic 2005

Show quoteHide quote
> Hi,
>
> thanks for replying ...
>
> I tried this (it must be a loop because i never don't know in advance
> how
> many cookies i need)
> But i get the error: "value of type string cannot be converted to
> system.web.httpcookie"
> How can i give the value of the cookie?
> Thanks
> Dim allCookies As Generic.Dictionary(Of String, HttpCookie)
> Dim i As Integer
> Dim cc(5) As String
> For i = 1 To 5
> allCookies.Add(cc(i), "test" & i)
> Next
> "Tim Patrick" <inva***@invalid.com.invalid> schreef in bericht
> news:e3b469762e408c8e1a20e2d96d8@newsgroups.comcast.net...
>
>> If you are using VB2005, you can switch to one of the Generic
>> collections that includes a key so that you can look up the cookie by
>> name.
>>
>> Dim allCookies As Generic.Dictionary(Of String, HttpCookie)
>>
>> Add new cookies to the dictionary this way:
>>
>> allCookies.Add(cookieName, theCookieItself)
>>
>> Access the cookie this way:
>>
>> theRetrievedCookie = allCookies(cookieName)
>>
>> -----
>> Tim Patrick - www.timaki.com
>> Start-to-Finish Visual Basic 2005
>>> Hi,
>>>
>>> I need several cookies depending of an variable (x), so i defined a
>>> HttpCookie() as an array.
>>> My problems:
>>> 1)I get the error: Object reference not set to an instance of an
>>> object.
>>> 2)My second question is: how to request those cookies, because there
>>> is no
>>> name?
>>> Thanks
>>> André
>>> I did:
>>> x=5
>>> Dim cok(x) As New HttpCookie        'can't give a name to the cookie
>>> ....
>>> for k=1 to x
>>> cok(k).Value = "cookie" & k
>>> Response.Cookies.Add(cok(k))
>>> next
>>> -----------------------------------
>>> recovering the cookies?
>>> for i=1 to x
>>> cok(i) = Request.Cookies("??")
>>> next
Author
29 Nov 2006 7:50 PM
André
Ok, thanks

Show quoteHide quote
"Tim Patrick" <inva***@invalid.com.invalid> schreef in bericht
news:e3b469762e5c8c8e1b211b60708@newsgroups.comcast.net...
> But you are trying to convert "test1" to a cookie. That is a string, not a
> cookie. You must specifically create an instance of HttpCookie, fill in
> its constructor or fields as needed, and then store it. I haven't used
> that object myself, but the code would be something like this.
>
> Dim allCookies As Generic.Dictionary(Of String, HttpCookie)
> Dim oneCookie As HttpCookie
> Dim i As Integer
>
> For counter = 1 To 5
>   oneCookie = New HttpCookie
>   ' !!! Fill in all of oneCookie's fields here, then...
>   allCookies.Add("test" & counter, oneCookie)
> Next counter
>
> -----
> Tim Patrick - www.timaki.com
> Start-to-Finish Visual Basic 2005
>
>> Hi,
>>
>> thanks for replying ...
>>
>> I tried this (it must be a loop because i never don't know in advance
>> how
>> many cookies i need)
>> But i get the error: "value of type string cannot be converted to
>> system.web.httpcookie"
>> How can i give the value of the cookie?
>> Thanks
>> Dim allCookies As Generic.Dictionary(Of String, HttpCookie)
>> Dim i As Integer
>> Dim cc(5) As String
>> For i = 1 To 5
>> allCookies.Add(cc(i), "test" & i)
>> Next
>> "Tim Patrick" <inva***@invalid.com.invalid> schreef in bericht
>> news:e3b469762e408c8e1a20e2d96d8@newsgroups.comcast.net...
>>
>>> If you are using VB2005, you can switch to one of the Generic
>>> collections that includes a key so that you can look up the cookie by
>>> name.
>>>
>>> Dim allCookies As Generic.Dictionary(Of String, HttpCookie)
>>>
>>> Add new cookies to the dictionary this way:
>>>
>>> allCookies.Add(cookieName, theCookieItself)
>>>
>>> Access the cookie this way:
>>>
>>> theRetrievedCookie = allCookies(cookieName)
>>>
>>> -----
>>> Tim Patrick - www.timaki.com
>>> Start-to-Finish Visual Basic 2005
>>>> Hi,
>>>>
>>>> I need several cookies depending of an variable (x), so i defined a
>>>> HttpCookie() as an array.
>>>> My problems:
>>>> 1)I get the error: Object reference not set to an instance of an
>>>> object.
>>>> 2)My second question is: how to request those cookies, because there
>>>> is no
>>>> name?
>>>> Thanks
>>>> André
>>>> I did:
>>>> x=5
>>>> Dim cok(x) As New HttpCookie        'can't give a name to the cookie
>>>> ....
>>>> for k=1 to x
>>>> cok(k).Value = "cookie" & k
>>>> Response.Cookies.Add(cok(k))
>>>> next
>>>> -----------------------------------
>>>> recovering the cookies?
>>>> for i=1 to x
>>>> cok(i) = Request.Cookies("??")
>>>> next
>
>
Author
29 Nov 2006 8:38 PM
André
Tim, don't become angry (i'm learning), but it still doesn't work ...

If i do what you wrote here, i get an error with the line:
oneCookie = New HttpCookie

the error is: "overload resolution failed because no accessible 'new'
accepts this number of arguments"

so i tried this (and the error is gone): oneCookie = New HttpCookie("ok")
the whole code is:
Dim allCookies As New Generic.Dictionary(Of String, HttpCookie)
Dim i As Integer
Dim oneCookie As HttpCookie
        For i = 1 To 5
            oneCookie = New HttpCookie("ok")
            oneCookie.Value = i
            allCookies.Add("test" & i, oneCookie)
        Next

But now, how can i retrieve the cookies? I did:

Dim allCookies As New Generic.Dictionary(Of String, HttpCookie)
Dim i As Integer
Dim cc(5) As String
Dim retCookie As HttpCookie
        For i = 1 To 5
            retCookie = allCookies("test" & i)
            cc(i) = retCookie.Value
            Response.Write(cc(i) & " ")
        Next

And the error is now: "The given key was not present in the dictionary"
Can you help me a last time? Thanks








Show quoteHide quote
"Tim Patrick" <inva***@invalid.com.invalid> schreef in bericht
news:e3b469762e5c8c8e1b211b60708@newsgroups.comcast.net...
> But you are trying to convert "test1" to a cookie. That is a string, not a
> cookie. You must specifically create an instance of HttpCookie, fill in
> its constructor or fields as needed, and then store it. I haven't used
> that object myself, but the code would be something like this.
>
> Dim allCookies As Generic.Dictionary(Of String, HttpCookie)
> Dim oneCookie As HttpCookie
> Dim i As Integer
>
> For counter = 1 To 5
>   oneCookie = New HttpCookie
>   ' !!! Fill in all of oneCookie's fields here, then...
>   allCookies.Add("test" & counter, oneCookie)
> Next counter
>
> -----
> Tim Patrick - www.timaki.com
> Start-to-Finish Visual Basic 2005
>
>> Hi,
>>
>> thanks for replying ...
>>
>> I tried this (it must be a loop because i never don't know in advance
>> how
>> many cookies i need)
>> But i get the error: "value of type string cannot be converted to
>> system.web.httpcookie"
>> How can i give the value of the cookie?
>> Thanks
>> Dim allCookies As Generic.Dictionary(Of String, HttpCookie)
>> Dim i As Integer
>> Dim cc(5) As String
>> For i = 1 To 5
>> allCookies.Add(cc(i), "test" & i)
>> Next
>> "Tim Patrick" <inva***@invalid.com.invalid> schreef in bericht
>> news:e3b469762e408c8e1a20e2d96d8@newsgroups.comcast.net...
>>
>>> If you are using VB2005, you can switch to one of the Generic
>>> collections that includes a key so that you can look up the cookie by
>>> name.
>>>
>>> Dim allCookies As Generic.Dictionary(Of String, HttpCookie)
>>>
>>> Add new cookies to the dictionary this way:
>>>
>>> allCookies.Add(cookieName, theCookieItself)
>>>
>>> Access the cookie this way:
>>>
>>> theRetrievedCookie = allCookies(cookieName)
>>>
>>> -----
>>> Tim Patrick - www.timaki.com
>>> Start-to-Finish Visual Basic 2005
>>>> Hi,
>>>>
>>>> I need several cookies depending of an variable (x), so i defined a
>>>> HttpCookie() as an array.
>>>> My problems:
>>>> 1)I get the error: Object reference not set to an instance of an
>>>> object.
>>>> 2)My second question is: how to request those cookies, because there
>>>> is no
>>>> name?
>>>> Thanks
>>>> André
>>>> I did:
>>>> x=5
>>>> Dim cok(x) As New HttpCookie        'can't give a name to the cookie
>>>> ....
>>>> for k=1 to x
>>>> cok(k).Value = "cookie" & k
>>>> Response.Cookies.Add(cok(k))
>>>> next
>>>> -----------------------------------
>>>> recovering the cookies?
>>>> for i=1 to x
>>>> cok(i) = Request.Cookies("??")
>>>> next
>
>
Author
30 Nov 2006 1:02 AM
Tim Patrick
Since I'm not sure of what you are doing, I'm not fully sure of the answer
to give you. Cookies are normally only used in the context of a web page,
and ASP.NET exposes two collections of cookies, one through the Request object
and one through the Response object. I'm not sure why you want to create
your own disconnected set of cookies.

I would confirm that you have read up on the HttpCookie object and its related
HttpCookieCollection object (instead of Generic.Dictionary). HttpCookie has
its own name, so it seems a collection-specified name isn't really necessary.

Maybe if you could explain your purpose, it would make the problem easier
to diagnose.

-----
Tim Patrick - www.timaki.com
Start-to-Finish Visual Basic 2005

Show quoteHide quote
> Tim, don't become angry (i'm learning), but it still doesn't work ...
>
> If i do what you wrote here, i get an error with the line: oneCookie =
> New HttpCookie
>
> the error is: "overload resolution failed because no accessible 'new'
> accepts this number of arguments"
>
> so i tried this (and the error is gone): oneCookie = New
> HttpCookie("ok")
> the whole code is:
> Dim allCookies As New Generic.Dictionary(Of String, HttpCookie)
> Dim i As Integer
> Dim oneCookie As HttpCookie
> For i = 1 To 5
> oneCookie = New HttpCookie("ok")
> oneCookie.Value = i
> allCookies.Add("test" & i, oneCookie)
> Next
> But now, how can i retrieve the cookies? I did:
>
> Dim allCookies As New Generic.Dictionary(Of String, HttpCookie)
> Dim i As Integer
> Dim cc(5) As String
> Dim retCookie As HttpCookie
> For i = 1 To 5
> retCookie = allCookies("test" & i)
> cc(i) = retCookie.Value
> Response.Write(cc(i) & " ")
> Next
> And the error is now: "The given key was not present in the
> dictionary" Can you help me a last time? Thanks
>
> "Tim Patrick" <inva***@invalid.com.invalid> schreef in bericht
> news:e3b469762e5c8c8e1b211b60708@newsgroups.comcast.net...
>
>> But you are trying to convert "test1" to a cookie. That is a string,
>> not a cookie. You must specifically create an instance of HttpCookie,
>> fill in its constructor or fields as needed, and then store it. I
>> haven't used that object myself, but the code would be something like
>> this.
>>
>> Dim allCookies As Generic.Dictionary(Of String, HttpCookie)
>> Dim oneCookie As HttpCookie
>> Dim i As Integer
>> For counter = 1 To 5
>> oneCookie = New HttpCookie
>> ' !!! Fill in all of oneCookie's fields here, then...
>> allCookies.Add("test" & counter, oneCookie)
>> Next counter
>> -----
>> Tim Patrick - www.timaki.com
>> Start-to-Finish Visual Basic 2005
>>> Hi,
>>>
>>> thanks for replying ...
>>>
>>> I tried this (it must be a loop because i never don't know in
>>> advance
>>> how
>>> many cookies i need)
>>> But i get the error: "value of type string cannot be converted to
>>> system.web.httpcookie"
>>> How can i give the value of the cookie?
>>> Thanks
>>> Dim allCookies As Generic.Dictionary(Of String, HttpCookie)
>>> Dim i As Integer
>>> Dim cc(5) As String
>>> For i = 1 To 5
>>> allCookies.Add(cc(i), "test" & i)
>>> Next
>>> "Tim Patrick" <inva***@invalid.com.invalid> schreef in bericht
>>> news:e3b469762e408c8e1a20e2d96d8@newsgroups.comcast.net...
>>>> If you are using VB2005, you can switch to one of the Generic
>>>> collections that includes a key so that you can look up the cookie
>>>> by name.
>>>>
>>>> Dim allCookies As Generic.Dictionary(Of String, HttpCookie)
>>>>
>>>> Add new cookies to the dictionary this way:
>>>>
>>>> allCookies.Add(cookieName, theCookieItself)
>>>>
>>>> Access the cookie this way:
>>>>
>>>> theRetrievedCookie = allCookies(cookieName)
>>>>
>>>> -----
>>>> Tim Patrick - www.timaki.com
>>>> Start-to-Finish Visual Basic 2005
>>>>> Hi,
>>>>>
>>>>> I need several cookies depending of an variable (x), so i defined
>>>>> a
>>>>> HttpCookie() as an array.
>>>>> My problems:
>>>>> 1)I get the error: Object reference not set to an instance of an
>>>>> object.
>>>>> 2)My second question is: how to request those cookies, because
>>>>> there
>>>>> is no
>>>>> name?
>>>>> Thanks
>>>>> André
>>>>> I did:
>>>>> x=5
>>>>> Dim cok(x) As New HttpCookie        'can't give a name to the
>>>>> cookie
>>>>> ....
>>>>> for k=1 to x
>>>>> cok(k).Value = "cookie" & k
>>>>> Response.Cookies.Add(cok(k))
>>>>> next
>>>>> -----------------------------------
>>>>> recovering the cookies?
>>>>> for i=1 to x
>>>>> cok(i) = Request.Cookies("??")
>>>>> next
Author
30 Nov 2006 10:00 PM
André
Tim, it's ok, i think i understand it now ...


Show quoteHide quote
"Tim Patrick" <inva***@invalid.com.invalid> schreef in bericht
news:e3b469762eae8c8e1ef3d9c867a@newsgroups.comcast.net...
> Since I'm not sure of what you are doing, I'm not fully sure of the answer
> to give you. Cookies are normally only used in the context of a web page,
> and ASP.NET exposes two collections of cookies, one through the Request
> object and one through the Response object. I'm not sure why you want to
> create your own disconnected set of cookies.
>
> I would confirm that you have read up on the HttpCookie object and its
> related HttpCookieCollection object (instead of Generic.Dictionary).
> HttpCookie has its own name, so it seems a collection-specified name isn't
> really necessary.
>
> Maybe if you could explain your purpose, it would make the problem easier
> to diagnose.
>
> -----
> Tim Patrick - www.timaki.com
> Start-to-Finish Visual Basic 2005
>
>> Tim, don't become angry (i'm learning), but it still doesn't work ...
>>
>> If i do what you wrote here, i get an error with the line: oneCookie =
>> New HttpCookie
>>
>> the error is: "overload resolution failed because no accessible 'new'
>> accepts this number of arguments"
>>
>> so i tried this (and the error is gone): oneCookie = New
>> HttpCookie("ok")
>> the whole code is:
>> Dim allCookies As New Generic.Dictionary(Of String, HttpCookie)
>> Dim i As Integer
>> Dim oneCookie As HttpCookie
>> For i = 1 To 5
>> oneCookie = New HttpCookie("ok")
>> oneCookie.Value = i
>> allCookies.Add("test" & i, oneCookie)
>> Next
>> But now, how can i retrieve the cookies? I did:
>>
>> Dim allCookies As New Generic.Dictionary(Of String, HttpCookie)
>> Dim i As Integer
>> Dim cc(5) As String
>> Dim retCookie As HttpCookie
>> For i = 1 To 5
>> retCookie = allCookies("test" & i)
>> cc(i) = retCookie.Value
>> Response.Write(cc(i) & " ")
>> Next
>> And the error is now: "The given key was not present in the
>> dictionary" Can you help me a last time? Thanks
>>
>> "Tim Patrick" <inva***@invalid.com.invalid> schreef in bericht
>> news:e3b469762e5c8c8e1b211b60708@newsgroups.comcast.net...
>>
>>> But you are trying to convert "test1" to a cookie. That is a string,
>>> not a cookie. You must specifically create an instance of HttpCookie,
>>> fill in its constructor or fields as needed, and then store it. I
>>> haven't used that object myself, but the code would be something like
>>> this.
>>>
>>> Dim allCookies As Generic.Dictionary(Of String, HttpCookie)
>>> Dim oneCookie As HttpCookie
>>> Dim i As Integer
>>> For counter = 1 To 5
>>> oneCookie = New HttpCookie
>>> ' !!! Fill in all of oneCookie's fields here, then...
>>> allCookies.Add("test" & counter, oneCookie)
>>> Next counter
>>> -----
>>> Tim Patrick - www.timaki.com
>>> Start-to-Finish Visual Basic 2005
>>>> Hi,
>>>>
>>>> thanks for replying ...
>>>>
>>>> I tried this (it must be a loop because i never don't know in
>>>> advance
>>>> how
>>>> many cookies i need)
>>>> But i get the error: "value of type string cannot be converted to
>>>> system.web.httpcookie"
>>>> How can i give the value of the cookie?
>>>> Thanks
>>>> Dim allCookies As Generic.Dictionary(Of String, HttpCookie)
>>>> Dim i As Integer
>>>> Dim cc(5) As String
>>>> For i = 1 To 5
>>>> allCookies.Add(cc(i), "test" & i)
>>>> Next
>>>> "Tim Patrick" <inva***@invalid.com.invalid> schreef in bericht
>>>> news:e3b469762e408c8e1a20e2d96d8@newsgroups.comcast.net...
>>>>> If you are using VB2005, you can switch to one of the Generic
>>>>> collections that includes a key so that you can look up the cookie
>>>>> by name.
>>>>>
>>>>> Dim allCookies As Generic.Dictionary(Of String, HttpCookie)
>>>>>
>>>>> Add new cookies to the dictionary this way:
>>>>>
>>>>> allCookies.Add(cookieName, theCookieItself)
>>>>>
>>>>> Access the cookie this way:
>>>>>
>>>>> theRetrievedCookie = allCookies(cookieName)
>>>>>
>>>>> -----
>>>>> Tim Patrick - www.timaki.com
>>>>> Start-to-Finish Visual Basic 2005
>>>>>> Hi,
>>>>>>
>>>>>> I need several cookies depending of an variable (x), so i defined
>>>>>> a
>>>>>> HttpCookie() as an array.
>>>>>> My problems:
>>>>>> 1)I get the error: Object reference not set to an instance of an
>>>>>> object.
>>>>>> 2)My second question is: how to request those cookies, because
>>>>>> there
>>>>>> is no
>>>>>> name?
>>>>>> Thanks
>>>>>> André
>>>>>> I did:
>>>>>> x=5
>>>>>> Dim cok(x) As New HttpCookie        'can't give a name to the
>>>>>> cookie
>>>>>> ....
>>>>>> for k=1 to x
>>>>>> cok(k).Value = "cookie" & k
>>>>>> Response.Cookies.Add(cok(k))
>>>>>> next
>>>>>> -----------------------------------
>>>>>> recovering the cookies?
>>>>>> for i=1 to x
>>>>>> cok(i) = Request.Cookies("??")
>>>>>> next
>
>