rasputin.dnsalias.com

Posted on March 7, 2005 8:16 PM by chadley

Ok ok mebbe not. But I'm moving over from the vbscript/vb world into vb.net or is it just .NET? Anyway, in this thread I'm gonna put stuff that I learn about .net and will eventually forget. So guess what? Then when I need to relearn something I have forgotten, I will just check here. So if you're not a programmer or you just hate Micro$oft, ignore the rest of this thread...

This post has been looked at 105 time(s).

Posted on March 7, 2005 8:19 PM by chadley

Need to convert types?

Say you have a string and need to convert to double or int or vice versa?

Use the System.Convert class.

[Visual Basic] 
Dim dNumber As Double
dNumber = 23.15

Try
' Returns 23
Dim iNumber As Integer
iNumber = System.Convert.ToInt32(dNumber)
Catch exp As System.OverflowException
System.Console.WriteLine("Overflow in double to int conversion.")
End Try

' Returns True
Dim bNumber As Boolean
bNumber = System.Convert.ToBoolean(dNumber)

' Returns "23.15"
Dim strNumber As String
strNumber = System.Convert.ToString(dNumber)

Try
' Returns '2'
Dim chrNumber As Char
chrNumber = System.Convert.ToChar(strNumber.Chars(1))
Catch exp As System.ArgumentNullException
System.Console.WriteLine("String is null.")
Catch exp As System.FormatException
System.Console.WriteLine("String length is greater than 1.")
End Try

' System.Console.ReadLine() returns a string and it
' must be converted.
Dim newInteger As Integer
newInteger = 0
Try
System.Console.WriteLine("Enter an integer:")
newInteger = System.Convert.ToInt32(System.Console.ReadLine())
Catch exp As System.ArgumentNullException
System.Console.WriteLine("String is null.")
Catch exp As System.FormatException
System.Console.WriteLine("String does not consist of an " + _
"optional sign followed by a series of digits.")
Catch exp As System.OverflowException
System.Console.WriteLine("Overflow in string to int conversion.")
End Try

System.Console.WriteLine("Your integer as a double is {0}", _
System.Convert.ToDouble(newInteger))

[C#]
double dNumber = 23.15;

try {
// Returns 23
int iNumber = System.Convert.ToInt32(dNumber);
}
catch (System.OverflowException) {
System.Console.WriteLine(
"Overflow in double to int conversion.");
}
// Returns True
bool bNumber = System.Convert.ToBoolean(dNumber);

// Returns "23.15"
string strNumber = System.Convert.ToString(dNumber);

try {
// Returns '2'
char chrNumber = System.Convert.ToChar(strNumber[0]);
}
catch (System.ArgumentNullException) {
System.Console.WriteLine("String is null");
}
catch (System.FormatException) {
System.Console.WriteLine("String length is greater than 1.");
}

// System.Console.ReadLine() returns a string and it
// must be converted.
int newInteger = 0;
try {
System.Console.WriteLine("Enter an integer:");
newInteger = System.Convert.ToInt32(
System.Console.ReadLine());
}
catch (System.ArgumentNullException) {
System.Console.WriteLine("String is null.");
}
catch (System.FormatException) {
System.Console.WriteLine("String does not consist of an " +
"optional sign followed by a series of digits.");
}
catch (System.OverflowException) {
System.Console.WriteLine(
"Overflow in string to int conversion.");
}

System.Console.WriteLine("Your integer as a double is {0}",
System.Convert.ToDouble(newInteger));

[C++]
Double dNumber = 23.15;

try {
// Returns 23
Int32 iNumber = Convert::ToInt32(dNumber);
}
catch (OverflowException*) {
Console::WriteLine("Overflow in Double to Int32 conversion");
}

// Returns True
Boolean bNumber = Convert::ToBoolean(dNumber);

// Returns "23.15"
String* strNumber = Convert::ToString(dNumber);

try {
// Returns '2'
Char chrNumber = Convert::ToChar(strNumber->Substring(0,1));
}
catch (ArgumentNullException*) {
Console::WriteLine("String is null");
}
catch (FormatException*) {
Console::WriteLine("String length is greater than 1");
}

// Console.ReadLine() returns a string and it
// must be converted.
Int32 newInteger = 0;
try {
Console::WriteLine("Enter an integer:");
newInteger = Convert::ToInt32("10001");
}
catch (ArgumentNullException*) {
Console::WriteLine("String is null");
}
catch (FormatException*) {
Console::WriteLine("String does not consist of an optional sign followed by a series of digits");
}
catch (OverflowException*) {
Console::WriteLine("Overflow in string to Int32 conversion");
}

Console::WriteLine("Your integer as a Double is {0}", __box(Convert::ToDouble(newInteger)));

[Visual Basic]
' Sample for the Convert class summary.
Imports System

Class Sample
Public Shared Sub Main()
Dim nl As String = Environment.NewLine
Dim str As String = "{0}Return the Int64 equivalent of the following base types:{0}"
Dim xBool As Boolean = False
Dim xShort As Short = 1
Dim xInt As Integer = 2
Dim xLong As Long = 3
Dim xSingle As Single = 4F
Dim xDouble As Double = 5.0
Dim xDecimal As Decimal = 6D
Dim xString As String = "7"
Dim xChar As Char = "8"c ' '8' = hexadecimal 38 = decimal 56
Dim xByte As Byte = 9

' The following types are not CLS-compliant.
' Dim xUshort As System.UInt16 = 120
' Dim xUint As System.UInt32 = 121
' Dim xUlong As System.UInt64 = 122
' Dim xSbyte As System.SByte = 123

' The following type cannot be converted to an Int64.
' Dim xDateTime As System.DateTime = DateTime.Now

Console.WriteLine(str, nl)
Console.WriteLine("Boolean: {0}", Convert.ToInt64(xBool))
Console.WriteLine("Int16: {0}", Convert.ToInt64(xShort))
Console.WriteLine("Int32: {0}", Convert.ToInt64(xInt))
Console.WriteLine("Int64: {0}", Convert.ToInt64(xLong))
Console.WriteLine("Single: {0}", Convert.ToInt64(xSingle))
Console.WriteLine("Double: {0}", Convert.ToInt64(xDouble))
Console.WriteLine("Decimal: {0}", Convert.ToInt64(xDecimal))
Console.WriteLine("String: {0}", Convert.ToInt64(xString))
Console.WriteLine("Char: {0}", Convert.ToInt64(xChar))
Console.WriteLine("Byte: {0}", Convert.ToInt64(xByte))
Console.WriteLine("DateTime: There is no example of this conversion because")
Console.WriteLine(" a DateTime cannot be converted to an Int64.")
'
Console.Write("{0}The following types are not supported: ", nl)
Console.WriteLine("UInt16, UInt32, UInt64, and SByte")
End Sub 'Main
End Class 'Sample
'
'This example produces the following results:
'
'Return the Int64 equivalent of the following base types:
'
'Boolean: 0
'Int16: 1
'Int32: 2
'Int64: 3
'Single: 4
'Double: 5
'Decimal: 6
'String: 7
'Char: 56
'Byte: 9
'DateTime: There is no example of this conversion because
' a DateTime cannot be converted to an Int64.
'
'The following types are not supported: UInt16, UInt32, UInt64, and SByte
'

[C#]
// Sample for the Convert class summary.
using System;

class Sample
{
public static void Main()
{
string nl = Environment.NewLine;
string str = "{0}Return the Int64 equivalent of the following base types:{0}";
bool xBool = false;
short xShort = 1;
int xInt = 2;
long xLong = 3;
float xSingle = 4.0f;
double xDouble = 5.0;
decimal xDecimal = 6.0m;
string xString = "7";
char xChar = '8'; // '8' = hexadecimal 38 = decimal 56
byte xByte = 9;

// The following types are not CLS-compliant.
ushort xUshort = 120;
uint xUint = 121;
ulong xUlong = 122;
sbyte xSbyte = 123;

// The following type cannot be converted to an Int64.
// DateTime xDateTime = DateTime.Now;

Console.WriteLine(str, nl);
Console.WriteLine("Boolean: {0}", Convert.ToInt64(xBool));
Console.WriteLine("Int16: {0}", Convert.ToInt64(xShort));
Console.WriteLine("Int32: {0}", Convert.ToInt64(xInt));
Console.WriteLine("Int64: {0}", Convert.ToInt64(xLong));
Console.WriteLine("Single: {0}", Convert.ToInt64(xSingle));
Console.WriteLine("Double: {0}", Convert.ToInt64(xDouble));
Console.WriteLine("Decimal: {0}", Convert.ToInt64(xDecimal));
Console.WriteLine("String: {0}", Convert.ToInt64(xString));
Console.WriteLine("Char: {0}", Convert.ToInt64(xChar));
Console.WriteLine("Byte: {0}", Convert.ToInt64(xByte));
Console.WriteLine("DateTime: There is no example of this conversion because");
Console.WriteLine(" a DateTime cannot be converted to an Int64.");
//
Console.WriteLine("{0}The following types are not CLS-compliant.{0}", nl);
Console.WriteLine("UInt16: {0}", Convert.ToInt64(xUshort));
Console.WriteLine("UInt32: {0}", Convert.ToInt64(xUint));
Console.WriteLine("UInt64: {0}", Convert.ToInt64(xUlong));
Console.WriteLine("SByte: {0}", Convert.ToInt64(xSbyte));
}
}
/*
This example produces the following results:

Return the Int64 equivalent of the following base types:

Boolean: 0
Int16: 1
Int32: 2
Int64: 3
Single: 4
Double: 5
Decimal: 6
String: 7
Char: 56
Byte: 9
DateTime: There is no example of this conversion because
a DateTime cannot be converted to an Int64.

The following types are not CLS-compliant.

UInt16: 120
UInt32: 121
UInt64: 122
SByte: 123
*/

[C++]
// Sample for the Convert class summary.
#using <mscorlib.dll>

using namespace System;


int main() {
String* nl = Environment::NewLine;
String* str = S" {0}Return the Int64 equivalent of the following base types: {0}";
bool xBool = false;
short xShort = 1;
int xInt = 2;
long xLong = 3;
float xSingle = 4.0f;
double xDouble = 5.0;
Decimal xDecimal = 6.0;
String* xString = S"7";
char xChar = '8'; // '8' = hexadecimal 38 = decimal 56
Byte xByte = 9;

// The following types are not CLS-compliant.
UInt16 xUshort = 120;
UInt32 xUint = 121;
UInt64 xUlong = 122;
SByte xSbyte = 123;

// The following type cannot be converted to an Int64.
// DateTime xDateTime = DateTime::Now;

Console::WriteLine(str, nl);
Console::WriteLine(S"Boolean: {0}", __box(Convert::ToInt64(xBool)));
Console::WriteLine(S"Int16: {0}", __box(Convert::ToInt64(xShort)));
Console::WriteLine(S"Int32: {0}", __box(Convert::ToInt64(xInt)));
Console::WriteLine(S"Int64: {0}", __box(Convert::ToInt64(xLong)));
Console::WriteLine(S"Single: {0}", __box(Convert::ToInt64(xSingle)));
Console::WriteLine(S"Double: {0}", __box(Convert::ToInt64(xDouble)));
Console::WriteLine(S"Decimal: {0}", __box(Convert::ToInt64(xDecimal)));
Console::WriteLine(S"String: {0}", __box(Convert::ToInt64(xString)));
Console::WriteLine(S"Char: {0}", __box(Convert::ToInt64(xChar)));
Console::WriteLine(S"Byte: {0}", __box(Convert::ToInt64(xByte)));
Console::WriteLine(S"DateTime: There is no example of this conversion because");
Console::WriteLine(S" a DateTime cannot be converted to an Int64.");
//
Console::WriteLine(S" {0}The following types are not CLS-compliant. {0}", nl);
Console::WriteLine(S"UInt16: {0}", __box(Convert::ToInt64(xUshort)));
Console::WriteLine(S"UInt32: {0}", __box(Convert::ToInt64(xUint)));
Console::WriteLine(S"UInt64: {0}", __box(Convert::ToInt64(xUlong)));
Console::WriteLine(S"SByte: {0}", __box(Convert::ToInt64(xSbyte)));
}
/*
This example produces the following results:

Return the Int64 equivalent of the following base types:

Boolean: 0
Int16: 1
Int32: 2
Int64: 3
Single: 4
Double: 5
Decimal: 6
String: 7
Char: 56
Byte: 9
DateTime: There is no example of this conversion because
a DateTime cannot be converted to an Int64.

The following types are not CLS-compliant.

UInt16: 120
UInt32: 121
UInt64: 122
SByte: 123
*/


Posted on March 7, 2005 8:22 PM by chadley

Looking for app.path?

Try System.Environment.CurrentDirectory Property


Posted on April 28, 2005 9:51 PM by chadley

Ok, I set up a dev environment on a different machine so I can test code changes before I put them on the public site. Sorry ppls, no UAT environment is planned. But I had a peculiar problem. No matter how I tried I could not get IIS on the dev box to recognize and use the .NET Framework.

When you went to .aspx pages it just downloaded them to you. Nice, huh?

Anyway, I found the solution from a google search:

If you run "c:\winnt\microsoft.net\framework\{version of CLR}\aspnet_regiis.exe -I", this will re-register ASP.NET and *should* fix up IIS settings for you

You are NOT logged in. You MUST login to add a comment at this time.
Username:
Password:
Comment Title:
Comment: