# What is the equivalent of the strtoul routine in VB?

I am porting a routine from C to VB and have everything done except I need a way of simulating the C strtoul routine. This routine converts a string to an unsigned long.

I've done quite a bit in VB but this is over my head.
###### Who is Participating?

Commented:
ZoneNumber=LongToUnsigned(Clng(Val(UTMZone)))
0

Commented:
LongToUnsigned(clng(yourval))
0

Commented:
or

LongToUnsigned(clng(val(yourval)))
0

Commented:
0

Commented:
If strString is the string that you want to convert to long use this:

Dim strString As String
Dim lngLong As Long

strString="53224356"
lngLong=Clng(Val(strString))

Or just:
lngLong=Val(strString)
0

Commented:
LONG in VB = -2,147,483,647 to 2,147,483,647
DOUBLE in VB = 4.94065645841247E-324 to 1.79769313486232E308 and stored as IEEE 64-bit 8 byte numbers

there isn't a "real" unsigned long int in VB, your more or less just typecasting to something larger that just so happens to hold those values. Just be warned if this is necessary for file I/O as it's 8 bytes not 4 in case that is an issue
0

Commented:
Yes, g0rath is right, but Long type in VB is only "native" type in VB that is integer and big enough to hold 2^32 values (half negative and other positive) and it is close enough to unsigned long in C.
Mathematical operation with Long variable will result in Long variable (integer).
If you use Double value type, these 64 bits can't contain all 1.79*10^308 values and mathematical operations with it can contain non-exact results, but may contain values larger than 2^31 (the upper bound for Long variables).

If you don't want to make non-integer mathematical operations with Long variable, it will suits your needs in interval -2^31 to +2^31.
0

Commented:
Shkoach
0

Commented:
"Shkoach" ???
0

Author Commented:
Sorry it's taken me so long to get back to you guys. I've been away from my computer since yesterday afternoon. I'll give a few of these a try and get back to you.

Thanks
0

Author Commented:
The expression I am needing to duplicate is

ZoneNumber=strtoul(UTMZone, &ZoneLetter, 10)

What would this look like in Vb?
0

Author Commented:
Thanks guys that wasn't as hard as I thought it might be. When I went through and read a summary of the strtoul routine I just got more confused. Anyways great work!
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.