W
William Stacey
Here an example I just posted earlier. Notice the out uint. In your case
you would use a bool.
Call the first like so:
uint num;
if ( IsUInt("mystring", out num) )
{
//do something with num.
}
===
public static bool IsUInt(string str, out uint val)
{
val = 0;
if ( str == null )
return false;
char [] cArray = str.ToCharArray();
return Bits.IsUInt(cArray, out val);
}
public static bool IsUInt(char[] cArray, out uint val)
{
val = 0;
if ( cArray == null || cArray.Length == 0 )
return false;
if ( cArray.Length > 10 )
return false;
long numPlace = 1;
long num = 0;
byte b = 0;
for (int i = cArray.Length - 1; i >= 0; i--)
{
if (cArray > 57 || cArray < 48)
return false;
b = (byte)(cArray - 48);
num = num + ( b * numPlace );
numPlace = numPlace * 10;
}
if ( num > uint.MaxValue )
return false;
val = (uint)num;
return true;
}
public static bool IsInt(string str, out int val)
{
val = 0;
if ( str == null )
return false;
char [] cArray = str.ToCharArray();
return Bits.IsInt(cArray, out val);
}
public static bool IsInt(char[] cArray, out int val)
{
val = 0;
if ( cArray == null || cArray.Length == 0 )
return false;
if ( cArray.Length > 11 ) //10 max numerics plus one minus sign.
return false;
long numPlace = 1;
long num = 0;
byte b = 0;
int signed = 1;
if ( cArray[0] == '-' )
{
signed = -1;
cArray[0] = '0';
if ( cArray.Length == 1 )
return false;
}
for (int i = cArray.Length - 1; i >= 0; i--)
{
if (cArray > 57 || cArray < 48)
return false;
b = (byte)(cArray - 48);
num = num + ( b * numPlace );
numPlace = numPlace * 10;
}
num = num * signed;
if ( num > int.MaxValue || num < int.MinValue )
return false;
val = (int)num;
return true;
}
you would use a bool.
Call the first like so:
uint num;
if ( IsUInt("mystring", out num) )
{
//do something with num.
}
===
public static bool IsUInt(string str, out uint val)
{
val = 0;
if ( str == null )
return false;
char [] cArray = str.ToCharArray();
return Bits.IsUInt(cArray, out val);
}
public static bool IsUInt(char[] cArray, out uint val)
{
val = 0;
if ( cArray == null || cArray.Length == 0 )
return false;
if ( cArray.Length > 10 )
return false;
long numPlace = 1;
long num = 0;
byte b = 0;
for (int i = cArray.Length - 1; i >= 0; i--)
{
if (cArray > 57 || cArray < 48)
return false;
b = (byte)(cArray - 48);
num = num + ( b * numPlace );
numPlace = numPlace * 10;
}
if ( num > uint.MaxValue )
return false;
val = (uint)num;
return true;
}
public static bool IsInt(string str, out int val)
{
val = 0;
if ( str == null )
return false;
char [] cArray = str.ToCharArray();
return Bits.IsInt(cArray, out val);
}
public static bool IsInt(char[] cArray, out int val)
{
val = 0;
if ( cArray == null || cArray.Length == 0 )
return false;
if ( cArray.Length > 11 ) //10 max numerics plus one minus sign.
return false;
long numPlace = 1;
long num = 0;
byte b = 0;
int signed = 1;
if ( cArray[0] == '-' )
{
signed = -1;
cArray[0] = '0';
if ( cArray.Length == 1 )
return false;
}
for (int i = cArray.Length - 1; i >= 0; i--)
{
if (cArray > 57 || cArray < 48)
return false;
b = (byte)(cArray - 48);
num = num + ( b * numPlace );
numPlace = numPlace * 10;
}
num = num * signed;
if ( num > int.MaxValue || num < int.MinValue )
return false;
val = (int)num;
return true;
}