Declaring/populating variable arrays in ASP.NET???

F

Friday

Sorry if this is the wrong group. I tried to find the one I thought
would be most relevant.

I'm an old PHP guy, who knows little about asp and NOTHING about
asp.net, but need to learn at least enough to convert a favorite PHP
script to work on an ASP.NET site.

I'm experimenting with simple example scripts that will help me learn
how to implement each "piece" of the puzzle.

Doing well so far... one piece of the puzzle at a time.
I need to create a simple funtion that will check the IP Address of a
visitor against an "array variable" of banned IPs.

In asp, it saeems simple enough. Here's the include that contains the
function to be called (in .asp):

##############################
<%
Dim sIPAddress
sIPAddress = Request.ServerVariables("HTTP_X_FORWARDED_FOR")
if sIPAddress = "" then
sIPAddress = Request.ServerVariables("REMOTE_ADDR")
End If
%>

<script language="VB" runat=server>

function BannedIP(sIPAddress)
Dim sBanned
sBanned =
Array("69.202.123.157","216.239.39.5","216.239.37.5","216.239.37.104","2
16.155.200.231","216.155.200.232","216.155.200.233","216.155.200.234")

Dim i
For i = 0 to UBound( [sBanned] )
If selCriteria(i,1) = cstr(sBanned) Then
BannedIP = TRUE
Else
BannedIP = false
End Function

</script>
################################

The function is called from an existing .aspx page thus:
################################
if BannedIP(sIPAddress) then
' show it the "SORRY" page
Server.Execute("sorry.aspx")
' Then STOP! (same as PHP's "exit;" statement ???)
Response.End
' otherwise it's cool, go ahead and display this page below
End If
################################

ASP.NET doesn't like this at all!
It tells me: "'Array' is a type and cannot be used as an expression."
:-(

What is the proper syntax in ASP.NET for:
variable = Array("value1","value2","value3")

I would simply use the function as is, written in asp, but the pages
are VERY .aspx and choke on it.


ALSO: My next piece of the puzzle will be to tackle this one, using the
same test script:
If I want e to ban a violator with a dynamic IP, how do I deal with
entire C-blocks (e.g.: BannedIP is TRUE if sIPAdress contains
123.45.6.*)


Many TIA
:)
Friday

--
#####################################
"The people cannot be all, & always well informed. The part which is wrong will
be discontented in proportion to the importance of the facts they misconceive.
If they remain quiet under such misconceptions it is a lethargy, the forerunner
of death to the public liberty. What country before ever existed a century & a
half without a rebellion? & what country can preserve it's liberties if their
rulers are not warned from time to time that their people preserve the spirit
of resistance? Let them take arms... The tree of liberty must be refreshed from
time to time with the blood of patriots & tyrants"
-- Thomas Jefferson
#####################################
 
C

Craig Deelsnyder

Friday said:
What is the proper syntax in ASP.NET for:
variable = Array("value1","value2","value3")

I would simply use the function as is, written in asp, but the pages
are VERY .aspx and choke on it.

http://www.vb-helper.com/howto_net_declare_arrays.html


ALSO: My next piece of the puzzle will be to tackle this one, using the
same test script:
If I want e to ban a violator with a dynamic IP, how do I deal with
entire C-blocks (e.g.: BannedIP is TRUE if sIPAdress contains
123.45.6.*)


Many TIA
:)
Friday

To get the visitor's IP address (if you don't know this already):

http://groups-beta.google.com/group...057ebbfed6c18b?&rnum=2&hl=en#ba057ebbfed6c18b

To match the 'wildcard' comparison you need, just check

sIPAdress.IndexOf("123.45.6.") = 0

If this is true, then ban them...
 
J

Jody Gelowitz

What is the proper syntax in ASP.NET for:
variable = Array("value1","value2","value3")


Dim sBanned() As String =
{"69.202.123.157","216.239.39.5","216.239.37.5","216.239.37.104","216.155.200.231","216.155.200.232","216.155.200.233","216.155.200.234"}

Jody


Friday said:
Sorry if this is the wrong group. I tried to find the one I thought
would be most relevant.

I'm an old PHP guy, who knows little about asp and NOTHING about
asp.net, but need to learn at least enough to convert a favorite PHP
script to work on an ASP.NET site.

I'm experimenting with simple example scripts that will help me learn
how to implement each "piece" of the puzzle.

Doing well so far... one piece of the puzzle at a time.
I need to create a simple funtion that will check the IP Address of a
visitor against an "array variable" of banned IPs.

In asp, it saeems simple enough. Here's the include that contains the
function to be called (in .asp):

##############################
<%
Dim sIPAddress
sIPAddress = Request.ServerVariables("HTTP_X_FORWARDED_FOR")
if sIPAddress = "" then
sIPAddress = Request.ServerVariables("REMOTE_ADDR")
End If
%>

<script language="VB" runat=server>

function BannedIP(sIPAddress)
Dim sBanned
sBanned =
Array("69.202.123.157","216.239.39.5","216.239.37.5","216.239.37.104","2
16.155.200.231","216.155.200.232","216.155.200.233","216.155.200.234")

Dim i
For i = 0 to UBound( [sBanned] )
If selCriteria(i,1) = cstr(sBanned) Then
BannedIP = TRUE
Else
BannedIP = false
End Function

</script>
################################

The function is called from an existing .aspx page thus:
################################
if BannedIP(sIPAddress) then
' show it the "SORRY" page
Server.Execute("sorry.aspx")
' Then STOP! (same as PHP's "exit;" statement ???)
Response.End
' otherwise it's cool, go ahead and display this page below
End If
################################

ASP.NET doesn't like this at all!
It tells me: "'Array' is a type and cannot be used as an expression."
:-(

What is the proper syntax in ASP.NET for:
variable = Array("value1","value2","value3")

I would simply use the function as is, written in asp, but the pages
are VERY .aspx and choke on it.


ALSO: My next piece of the puzzle will be to tackle this one, using the
same test script:
If I want e to ban a violator with a dynamic IP, how do I deal with
entire C-blocks (e.g.: BannedIP is TRUE if sIPAdress contains
123.45.6.*)


Many TIA
:)
Friday

--
#####################################
"The people cannot be all, & always well informed. The part which is wrong
will
be discontented in proportion to the importance of the facts they
misconceive.
If they remain quiet under such misconceptions it is a lethargy, the
forerunner
of death to the public liberty. What country before ever existed a century
& a
half without a rebellion? & what country can preserve it's liberties if
their
rulers are not warned from time to time that their people preserve the
spirit
of resistance? Let them take arms... The tree of liberty must be refreshed
from
time to time with the blood of patriots & tyrants"
-- Thomas Jefferson
#####################################
 
F

Friday

Jody Gelowitz said:
Dim sBanned() As String =

{"69.202.123.157","216.239.39.5","216.239.37.5","216.239.37.104","216.155.200.
231","216.155.200.232","216.155.200.233","216.155.200.234"}

Jody

Many Thanks!
Can't wait to try it.
:)
Friday said:
Sorry if this is the wrong group. I tried to find the one I thought
would be most relevant.

I'm an old PHP guy, who knows little about asp and NOTHING about
asp.net, but need to learn at least enough to convert a favorite PHP
script to work on an ASP.NET site.

I'm experimenting with simple example scripts that will help me learn
how to implement each "piece" of the puzzle.

Doing well so far... one piece of the puzzle at a time.
I need to create a simple funtion that will check the IP Address of a
visitor against an "array variable" of banned IPs.

In asp, it saeems simple enough. Here's the include that contains the
function to be called (in .asp):

##############################
<%
Dim sIPAddress
sIPAddress = Request.ServerVariables("HTTP_X_FORWARDED_FOR")
if sIPAddress = "" then
sIPAddress = Request.ServerVariables("REMOTE_ADDR")
End If
%>

<script language="VB" runat=server>

function BannedIP(sIPAddress)
Dim sBanned
sBanned =
Array("69.202.123.157","216.239.39.5","216.239.37.5","216.239.37.104","2
16.155.200.231","216.155.200.232","216.155.200.233","216.155.200.234")

Dim i
For i = 0 to UBound( [sBanned] )
If selCriteria(i,1) = cstr(sBanned) Then
BannedIP = TRUE
Else
BannedIP = false
End Function

</script>
################################

The function is called from an existing .aspx page thus:
################################
if BannedIP(sIPAddress) then
' show it the "SORRY" page
Server.Execute("sorry.aspx")
' Then STOP! (same as PHP's "exit;" statement ???)
Response.End
' otherwise it's cool, go ahead and display this page below
End If
################################

ASP.NET doesn't like this at all!
It tells me: "'Array' is a type and cannot be used as an expression."
:-(

What is the proper syntax in ASP.NET for:
variable = Array("value1","value2","value3")

I would simply use the function as is, written in asp, but the pages
are VERY .aspx and choke on it.


ALSO: My next piece of the puzzle will be to tackle this one, using the
same test script:
If I want e to ban a violator with a dynamic IP, how do I deal with
entire C-blocks (e.g.: BannedIP is TRUE if sIPAdress contains
123.45.6.*)


Many TIA
:)
Friday

--
#####################################
"The people cannot be all, & always well informed. The part which is wrong
will
be discontented in proportion to the importance of the facts they
misconceive.
If they remain quiet under such misconceptions it is a lethargy, the
forerunner
of death to the public liberty. What country before ever existed a century
& a
half without a rebellion? & what country can preserve it's liberties if
their
rulers are not warned from time to time that their people preserve the
spirit
of resistance? Let them take arms... The tree of liberty must be refreshed
from
time to time with the blood of patriots & tyrants"
-- Thomas Jefferson
#####################################

--
#####################################
"The people cannot be all, & always well informed. The part which is wrong will
be discontented in proportion to the importance of the facts they misconceive.
If they remain quiet under such misconceptions it is a lethargy, the forerunner
of death to the public liberty. What country before ever existed a century & a
half without a rebellion? & what country can preserve it's liberties if their
rulers are not warned from time to time that their people preserve the spirit
of resistance? Let them take arms... The tree of liberty must be refreshed from
time to time with the blood of patriots & tyrants"
-- Thomas Jefferson
#####################################
 
F

Friday

Craig Deelsnyder said:
To get the visitor's IP address (if you don't know this already):


http://groups-beta.google.com/group/microsoft.public.dotnet.framework.aspnet/b
rowse_frm/thread/dddc409ea9550571/ba057ebbfed6c18b?&rnum=2&hl=en#ba057ebbfed6c
18b

To match the 'wildcard' comparison you need, just check

sIPAdress.IndexOf("123.45.6.") = 0

If this is true, then ban them...

Thanks Craig
:)
Friday

--
#####################################
"The people cannot be all, & always well informed. The part which is wrong will
be discontented in proportion to the importance of the facts they misconceive.
If they remain quiet under such misconceptions it is a lethargy, the forerunner
of death to the public liberty. What country before ever existed a century & a
half without a rebellion? & what country can preserve it's liberties if their
rulers are not warned from time to time that their people preserve the spirit
of resistance? Let them take arms... The tree of liberty must be refreshed from
time to time with the blood of patriots & tyrants"
-- Thomas Jefferson
#####################################
 
F

Friday

Jody Gelowitz said:
Dim sBanned() As String =

{"69.202.123.157","216.239.39.5","216.239.37.5","216.239.37.104","216.155.200.
231","216.155.200.232","216.155.200.233","216.155.200.234"}

Jody

Darn...
Now I'm geting an error: "Expression expected."

at: Dim sBanned() As String =

Something else wrong withmy little fndtion.
Any thoughts?

Now my little test reads:
##############################
<%
Dim sIPAddress
sIPAddress = Request.ServerVariables("HTTP_X_FORWARDED_FOR")
if sIPAddress = "" then
sIPAddress = Request.ServerVariables("REMOTE_ADDR")
End If
%>

<script language="VB" runat=server>

function BannedIP(sIPAddress)

Dim sBanned() As String =
("69.202.123.157","216.239.39.5","216.239.37.5","216.239.37.104","2
16.155.200.231","216.155.200.232","216.155.200.233","216.155.200.234")

Dim i
For i = 0 to UBound( [sBanned] )
If selCriteria(i,1) = cstr(sBanned) Then
BannedIP = TRUE
Else
BannedIP = false
End Function

</script>
################################

The function is called from an existing .aspx page thus:
################################
if BannedIP(sIPAddress) then
' show it the "SORRY" page
Server.Execute("sorry.aspx")
' Then STOP! (same as PHP's "exit;" statement ???)
Response.End
' otherwise it's cool, go ahead and display this page below
End If
################################

--
#####################################
"The people cannot be all, & always well informed. The part which is wrong will
be discontented in proportion to the importance of the facts they misconceive.
If they remain quiet under such misconceptions it is a lethargy, the forerunner
of death to the public liberty. What country before ever existed a century & a
half without a rebellion? & what country can preserve it's liberties if their
rulers are not warned from time to time that their people preserve the spirit
of resistance? Let them take arms... The tree of liberty must be refreshed from
time to time with the blood of patriots & tyrants"
-- Thomas Jefferson
#####################################
 
B

Brock Allen

Dim sBan as String() = {...}




Jody Gelowitz said:
Dim sBanned() As String =

{"69.202.123.157","216.239.39.5","216.239.37.5","216.239.37.104","216
.155.200. 231","216.155.200.232","216.155.200.233","216.155.200.234"}

Jody
Darn...
Now I'm geting an error: "Expression expected."
at: Dim sBanned() As String =

Something else wrong withmy little fndtion.
Any thoughts?
Now my little test reads:
##############################
<%
Dim sIPAddress
sIPAddress = Request.ServerVariables("HTTP_X_FORWARDED_FOR")
if sIPAddress = "" then
sIPAddress = Request.ServerVariables("REMOTE_ADDR")
End If
%>
<script language="VB" runat=server>

function BannedIP(sIPAddress)

Dim sBanned() As String =
("69.202.123.157","216.239.39.5","216.239.37.5","216.239.37.104","2
16.155.200.231","216.155.200.232","216.155.200.233","216.155.200.234")

Dim i
For i = 0 to UBound( [sBanned] )
If selCriteria(i,1) = cstr(sBanned) Then
BannedIP = TRUE
Else
BannedIP = false
End Function
</script>
################################
The function is called from an existing .aspx page thus:
################################
if BannedIP(sIPAddress) then
' show it the "SORRY" page
Server.Execute("sorry.aspx")
' Then STOP! (same as PHP's "exit;" statement ???)
Response.End
' otherwise it's cool, go ahead and display this page below
End If
################################
 
G

Guest

Friday, Jody's replied on the Array, but the syntac on your VB code needs a
couple of tweeks:
function BannedIP(sIPAddress as String) as Boolean
Dim sBanned, i as integar

sBanned = _
Array("69.202.123.157","216.239.39.5","216.239.37.5","216.239.37.104", _
"216.155.200.231","216.155.200.232","216.155.200.233","216.155.200.234")

For i = 0 to UBound( [sBanned] )
If sIPAddress = cstr(sBanned(i)) Then
BannedIP = TRUE
Exit For
Else
BannedIP = false
End If
Next
End Function

I am assuming that you are passing the IPAddress to be checked. Also, if you
want to check through the whole array, you will want to check each element of
the array. Also, you will want to break if it finds a banned address.

Just to let you know, I have 25 years of C, C++, C#, and only 1 year of VB
(and then only in MS Office. So you might know more about VB than I.

John H W

Friday said:
Sorry if this is the wrong group. I tried to find the one I thought
would be most relevant.

I'm an old PHP guy, who knows little about asp and NOTHING about
asp.net, but need to learn at least enough to convert a favorite PHP
script to work on an ASP.NET site.

I'm experimenting with simple example scripts that will help me learn
how to implement each "piece" of the puzzle.

Doing well so far... one piece of the puzzle at a time.
I need to create a simple funtion that will check the IP Address of a
visitor against an "array variable" of banned IPs.

In asp, it saeems simple enough. Here's the include that contains the
function to be called (in .asp):

##############################
<%
Dim sIPAddress
sIPAddress = Request.ServerVariables("HTTP_X_FORWARDED_FOR")
if sIPAddress = "" then
sIPAddress = Request.ServerVariables("REMOTE_ADDR")
End If
%>

<script language="VB" runat=server>

function BannedIP(sIPAddress)
Dim sBanned
sBanned =
Array("69.202.123.157","216.239.39.5","216.239.37.5","216.239.37.104","2
16.155.200.231","216.155.200.232","216.155.200.233","216.155.200.234")

Dim i
For i = 0 to UBound( [sBanned] )
If selCriteria(i,1) = cstr(sBanned) Then
BannedIP = TRUE
Else
BannedIP = false
End Function

</script>
################################

The function is called from an existing .aspx page thus:
################################
if BannedIP(sIPAddress) then
' show it the "SORRY" page
Server.Execute("sorry.aspx")
' Then STOP! (same as PHP's "exit;" statement ???)
Response.End
' otherwise it's cool, go ahead and display this page below
End If
################################

ASP.NET doesn't like this at all!
It tells me: "'Array' is a type and cannot be used as an expression."
:-(

What is the proper syntax in ASP.NET for:
variable = Array("value1","value2","value3")

I would simply use the function as is, written in asp, but the pages
are VERY .aspx and choke on it.


ALSO: My next piece of the puzzle will be to tackle this one, using the
same test script:
If I want e to ban a violator with a dynamic IP, how do I deal with
entire C-blocks (e.g.: BannedIP is TRUE if sIPAdress contains
123.45.6.*)


Many TIA
:)
Friday

--
#####################################
"The people cannot be all, & always well informed. The part which is wrong will
be discontented in proportion to the importance of the facts they misconceive.
If they remain quiet under such misconceptions it is a lethargy, the forerunner
of death to the public liberty. What country before ever existed a century & a
half without a rebellion? & what country can preserve it's liberties if their
rulers are not warned from time to time that their people preserve the spirit
of resistance? Let them take arms... The tree of liberty must be refreshed from
time to time with the blood of patriots & tyrants"
-- Thomas Jefferson
#####################################
 
F

Friday

John H said:
Friday, Jody's replied on the Array, but the syntac on your VB code needs a
couple of tweeks:
function BannedIP(sIPAddress as String) as Boolean
Dim sBanned, i as integar

I see. Thank You.
But.... do I use Jody's example for declaring the variable or the
following example [variable=Array(...)]???
sBanned = _
Array("69.202.123.157","216.239.39.5","216.239.37.5","216.239.37.104", _
"216.155.200.231","216.155.200.232","216.155.200.233","216.155.200.234")

For i = 0 to UBound( [sBanned] )
If sIPAddress = cstr(sBanned(i)) Then
BannedIP = TRUE
Exit For
Else
BannedIP = false
End If
Next
End Function

I am assuming that you are passing the IPAddress to be checked.
Yes.

Also, if you
want to check through the whole array, you will want to check each element of
the array. Also, you will want to break if it finds a banned address.

Just to let you know, I have 25 years of C, C++, C#, and only 1 year of VB
(and then only in MS Office. So you might know more about VB than I.

Not quite.
Just an old PHP guy.

--
 
G

Guest

I have not used Array as such. How I do it is:

Dim sIPAddress(8) as String
I would use 8 or some other amount that I would not exceed. I then use
another function to fill it from an XML or other "formated" file, passing the
array, i.e.,

brtn = FillBannedAddresses(sIPAddress())

Then declare the other function as
public function FillBannedAddresses(ByRef sIPAddress() as string) as Boolean
I then return a true if filled (false if a problem)

In this other function, I would open the file, parse it and load the
addresses into the passed array (byref).

I am leaving work now or I would give you some more "pointers."

John H W

Friday said:
John H said:
Friday, Jody's replied on the Array, but the syntac on your VB code needs a
couple of tweeks:
function BannedIP(sIPAddress as String) as Boolean
Dim sBanned, i as integar

I see. Thank You.
But.... do I use Jody's example for declaring the variable or the
following example [variable=Array(...)]???
sBanned = _
Array("69.202.123.157","216.239.39.5","216.239.37.5","216.239.37.104", _
"216.155.200.231","216.155.200.232","216.155.200.233","216.155.200.234")

For i = 0 to UBound( [sBanned] )
If sIPAddress = cstr(sBanned(i)) Then
BannedIP = TRUE
Exit For
Else
BannedIP = false
End If
Next
End Function

I am assuming that you are passing the IPAddress to be checked.
Yes.

Also, if you
want to check through the whole array, you will want to check each element of
the array. Also, you will want to break if it finds a banned address.

Just to let you know, I have 25 years of C, C++, C#, and only 1 year of VB
(and then only in MS Office. So you might know more about VB than I.

Not quite.
Just an old PHP guy.
 
J

Jon Skeet [C# MVP]

John H W said:
I have not used Array as such. How I do it is:

Dim sIPAddress(8) as String
I would use 8 or some other amount that I would not exceed. I then use
another function to fill it from an XML or other "formated" file, passing the
array, i.e.,

brtn = FillBannedAddresses(sIPAddress())

Then declare the other function as
public function FillBannedAddresses(ByRef sIPAddress() as string) as Boolean
I then return a true if filled (false if a problem)

In this other function, I would open the file, parse it and load the
addresses into the passed array (byref).

Yuk. Exceptions are there precisely to indicate problems without you
needing to pass anything by reference or check return values all the
time.

Mind you, if you know how many you're going to parse beforehand, you
wouldn't need to pass the array variable by reference anyway...
 
G

Guest

Jon [C# MVP]:

I use exceptions, but sometimes I like the old, tried and true methods (25
years of writing code, starting with cobal, then C, C++, C# & VB.Net). In
the called funtion, I could use an exception, but opening a file, while
testing whether it is open, saves five or six lines for an exception.

Then while reading in the addresses, I check at each read, again testing in
the same if statement, saving even more lines it would take to "switch" to
another exception.

In thinking about what I wrote below while driving home, instead of using
the boolean, I would return the number of addresses read, so my code would
look like:

nNumberRead = FillBannedAddresses(sIPAddress())
if nNumberRead > 0 then
For i = 0 to nNumberRead then
...
Next
end if

Of course, in C#, I would just write:

AddressList *sIPAddress; // where AddressList is a structure for a linked list
if (nNumberRead = FillBannedAddresses(sIPAddress)) > 0 {
... }

Don't forget, Jon, we are giving pointers to a person who is new to VB, but
has plenty of programming experience. When this is the case, I like to give
small directions or pointers and letting the persons use his own experience.
Introducing expections is too great a leap and can cause problems relating to
expections.

I also like "small" functions. Problems are easier and quicker to find.
Therefore, because of memory scope, you have to pass a reference or the info
he needs will "disappear" when he needs to use it. I am fairly new to VB
myself, but when I did try to return a "string array" from a function
[myarray = FunctionReturnString()] contained only the first element - all the
other elements were empty. While it is possible I did not do it correctly,
passing myarray by reference worked [FunctionReturnString(myarray) and
FunctionReturnString(byref myarray as string)].

But I would like to thank you for all your help in these newsgroups.

John H W
 
J

Jon Skeet [C# MVP]

John H W said:
I use exceptions, but sometimes I like the old, tried and true methods (25
years of writing code, starting with cobal, then C, C++, C# & VB.Net).

You mean tried and failed - how many bugs have you seen because people
have failed to look at the return value of a function call? I've
certainly seen loads. Heck, just look at the number of people who don't
use the return value of Stream.Read, and that's giving actual
information beyond just success/failure!
In the called funtion, I could use an exception, but opening a file, while
testing whether it is open, saves five or six lines for an exception.

Well, you've still got to be able to handle the exception anyway...
even if you test for whether or not it's open, it could be opened
immediately after that.
Then while reading in the addresses, I check at each read, again testing in
the same if statement, saving even more lines it would take to "switch" to
another exception.

Are you considering handling the exception at each point? I wouldn't -
chances are if the operation fails, that should be an exception going
up to the next stack layer anyway - if you fail to read the list of
banned IPs, do you really want to just asssume that the visitor is
allowed?
In thinking about what I wrote below while driving home, instead of using
the boolean, I would return the number of addresses read, so my code would
look like:

nNumberRead = FillBannedAddresses(sIPAddress())
if nNumberRead > 0 then
For i = 0 to nNumberRead then
...
Next
end if

Why not just return the array in the first place? You could always
return null or an empty array if you absolutely had to.
Of course, in C#, I would just write:

AddressList *sIPAddress; // where AddressList is a structure for a linked list
if (nNumberRead = FillBannedAddresses(sIPAddress)) > 0 {
... }

Do you mean in C/C++? Or are you considering using unsafe code?
Don't forget, Jon, we are giving pointers to a person who is new to VB, but
has plenty of programming experience. When this is the case, I like to give
small directions or pointers and letting the persons use his own experience.
Introducing expections is too great a leap and can cause problems relating to
expections.

Whereas not introducing exceptions can cause problems relating to
failing to look at return values, and persists the error-prone error
handling from "the bad old days". Why not show best practice right from
the start? Personally I'd suggest that if exceptions are a problem, the
OP should suspend his ASP.NET work and start learning the basics of
..NET properly, starting with some console apps and working up from
there.
I also like "small" functions. Problems are easier and quicker to find.
Therefore, because of memory scope, you have to pass a reference or the info
he needs will "disappear" when he needs to use it.

a) There's a difference between passing an array reference and passing
a parameter *by* reference.
b) The information wouldn't disappear - while the caller has a
reference to the array, the array and everything within it won't
be garbage collected.
I am fairly new to VB
myself, but when I did try to return a "string array" from a function
[myarray = FunctionReturnString()] contained only the first element - all the
other elements were empty. While it is possible I did not do it correctly,
passing myarray by reference worked [FunctionReturnString(myarray) and
FunctionReturnString(byref myarray as string)].

That's certainly a failure in your code. It's hard to say exactly what
the failure was without seeing the code, but passing things by
reference isn't the best solution. Passing by reference should be very
rare.
But I would like to thank you for all your help in these newsgroups.

My pleasure.
 
C

Cor Ligthert

Friday,

I never use the notation from you. I use for Net1.1

Dim sBanned() As String =
("69.202.123.157","216.239.39.5","216.239.37.5","216.239.37.104","2
16.155.200.231","216.155.200.232","216.155.200.233","216.155.200.234")
For i as integer = 0 to sBanned.length - 1
If sBanned(i) = selCriteria Then
BannedIP = True
Else
BannedIP = False
End Function

I hope this helps,

Cor
 
C

Cor Ligthert

doh,

my previous code would only test the last one. This is better in my opinion.

\\\\
Dim sBanned() As String =
("69.202.123.157","216.239.39.5","216.239.37.5","216.239.37.104","2
16.155.200.231","216.155.200.232","216.155.200.233","216.155.200.234")
For i as integer = 0 to sBanned.length - 1
If sBanned(i) = selCriteria Then
BannedIP = True
'take action
exit for
end if
End for
////

I hope this helps,

Cor
 
J

Jon Skeet [C# MVP]

Cor Ligthert said:
I never use the notation from you. I use for Net1.1

Dim sBanned() As String =
("69.202.123.157","216.239.39.5","216.239.37.5","216.239.37.104","2
16.155.200.231","216.155.200.232","216.155.200.233","216.155.200.234")
For i as integer = 0 to sBanned.length - 1
If sBanned(i) = selCriteria Then
BannedIP = True
Else
BannedIP = False
End Function

Just to find an element within an array, I'd suggest using
Array.IndexOf. (In this case, Array.IndexOf(sBanned, selCriteria).) If
the return value is -1, the element isn't found. Otherwise, it is.
 
C

Cor Ligthert

Jon,
Just to find an element within an array, I'd suggest using
Array.IndexOf. (In this case, Array.IndexOf(sBanned, selCriteria).) If
the return value is -1, the element isn't found. Otherwise, it is.
I have never thought of using it in that way, however you are right, I will
remember it.

:)

Cor
 
F

Friday

Cor Ligthert said:
doh,

my previous code would only test the last one. This is better in my opinion.

\\\\
Dim sBanned() As String =
("69.202.123.157","216.239.39.5","216.239.37.5","216.239.37.104","2
16.155.200.231","216.155.200.232","216.155.200.233","216.155.200.234")
For i as integer = 0 to sBanned.length - 1
If sBanned(i) = selCriteria Then
BannedIP = True
'take action
exit for
end if
End for
////

I hope this helps,

Cor
GREAT advice from everyone!
Thank You.
:)

But....

NOW I'm getting: "BC30198: ')' expected"
Where in the _WORLD_ does it expect a ')'???
(This little experiment doesn't seem that complicated 8-P)

If this were PHP, I would suspect a problem on the preceeding line:
"function BannedIP(sIPAddress as string) as Boolean"
hmmm...

Anyway, here's what I have on the included page with the function:
#######################
<%
Dim sIPAddress
' check for proxies
sIPAddress = Request.ServerVariables("HTTP_X_FORWARDED_FOR")
if sIPAddress = "" then
sIPAddress = Request.ServerVariables("REMOTE_ADDR")
End If
%>

<script language="VB" runat=server>

function BannedIP(sIPAddress as string) as Boolean

' The following line is where the error occurs [expecting ')']
Dim sBanned() As String =
("69.202.123.157","216.239.39.5","216.239.37.5","216.239.37.104","2
16.155.200.231","216.155.200.232","216.155.200.233","216.155.200.234")
' No line breaks, missing commas, or quotation marks in above line
For i as integer = 0 to sBanned.length - 1
If sBanned(i) = selCriteria Then
BannedIP = True
exit for
end if
End for

End Function
</script>
########################

And here is how the function is called from other .aspx pages:

########################
<!--#include file = "inc/IsBanned.aspx"-->
<%
if BannedIP(sIPAddress) THEN
' show it the GET LOST page
Server.Execute("get-lost.aspx")
' Then STOP! (same as PHP's "exit;" statement ???)
Response.End
' otherwise it's cool, serve up the page below:
End If
%>

<%@ import Namespace="StoreFront.StoreFront" %>
<%@ assembly name="StoreFront" %>
blah... blah... blah....
########################

Thanks to everyone for their patience.
Hard to teach an old L.A.M.P. dog new trix.
(Who thought Windows would ever catch on????)
;-)

--
#####################################
"The people cannot be all, & always well informed. The part which is wrong will
be discontented in proportion to the importance of the facts they misconceive.
If they remain quiet under such misconceptions it is a lethargy, the forerunner
of death to the public liberty. What country before ever existed a century & a
half without a rebellion? & what country can preserve it's liberties if their
rulers are not warned from time to time that their people preserve the spirit
of resistance? Let them take arms... The tree of liberty must be refreshed from
time to time with the blood of patriots & tyrants"
-- Thomas Jefferson
#####################################
 
F

Friday

Jon Skeet said:
Just to find an element within an array, I'd suggest using
Array.IndexOf. (In this case, Array.IndexOf(sBanned, selCriteria).) If
the return value is -1, the element isn't found. Otherwise, it is.

That's very interestinf Jon.
Thx.

How exactly would I use time-saver? i.e.: where and how would I define
the strings contained within the array (array variable?)?

Just as shown above?
Then simply replace the "IF" statement with your examle?

Thnx Again
Friday

--
#####################################
"The people cannot be all, & always well informed. The part which is wrong will
be discontented in proportion to the importance of the facts they misconceive.
If they remain quiet under such misconceptions it is a lethargy, the forerunner
of death to the public liberty. What country before ever existed a century & a
half without a rebellion? & what country can preserve it's liberties if their
rulers are not warned from time to time that their people preserve the spirit
of resistance? Let them take arms... The tree of liberty must be refreshed from
time to time with the blood of patriots & tyrants"
-- Thomas Jefferson
#####################################
 
F

Friday

Brock Allen said:
Dim sBan as String() = {...}
Thanks Brock. That seems to be the concensus of the proper way to do it.
Still... I'm now getting an error "expecting ')' "
Where in the world it wants a ')' is beyond me.
There are no open parenthesis. (Then again, this isn't perl, is it -not
that I miss Perl.)
8-P
Please see my most recent post.
Drat.

--
#####################################
"The people cannot be all, & always well informed. The part which is wrong will
be discontented in proportion to the importance of the facts they misconceive.
If they remain quiet under such misconceptions it is a lethargy, the forerunner
of death to the public liberty. What country before ever existed a century & a
half without a rebellion? & what country can preserve it's liberties if their
rulers are not warned from time to time that their people preserve the spirit
of resistance? Let them take arms... The tree of liberty must be refreshed from
time to time with the blood of patriots & tyrants"
-- Thomas Jefferson
#####################################
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,744
Messages
2,569,482
Members
44,901
Latest member
Noble71S45

Latest Threads

Top