Funciones de VB a C#

10/08/2007 - 22:08 por Irak Rubio | Informe spam
Hola, estoy migrando de VB.Net a C# y tengo unas dudas en cuanto a
equivalencias entre funciones de VB.

En visual Basic utilizo:

Instr (que me devuelve un entero si una subcadena se encuentra contenida en
otra cadena)

IsNumeric() Falso o verdadero si una cadena puede representarse como un numero

ASC() El valor Ascii de un caracter.

CHR() El caracter de un valor entero

IsDate() Falso o verdadero si una cadena se puede representar como una fecha


Me gustaría saber cuales serían sus equivalentes en C#

Gracias!!!!!

Preguntas similare

Leer las respuestas

#1 Guillermo guille
11/08/2007 - 12:31 | Informe spam
Hola,

Para InStr debes usar IndexOf, pero recuerda que todas las funciones de VB
devuelven 1 para el primer carácter en vez de 0 que es el primer carácter en
la manipulación de cadenas en .NET.
Por ejemplo, Left(cadena, 3) sería cadena.Substring(0, 3) que sería lo mismo
que Mid(cadena, 1, 3)

Para IsNumeric no hay equivalencia, pero Harvey Triana publicó su propia
versión en este artículo:
http://www.elguille.info/colabora/N...DotNET.htm
En ese mismo artículo está el código para VB6, VB .NET y C# y maneja varias
cosas relacionadas con las cadenas.

ASC se puede "simular" haciendo un cast: (int)'c' te dará el valor ASCII de
la letra c en minúscula.
CHR (o CHRW) será la conversión de un número a char: (char)numero

IsDate, pues... tendrás que fabricarla tu mismo.
Pero así a las bravas sería simplemente una función que detecte errores y
"pruebe" si se puede convertir la cadena en un DateTime.
static public bool IsDate(string fecha)
{
try
{
DateTime fecha1 = Convert.ToDateTime(fecha);
return true;
}
catch
{
return false;
}
}
Ten en cuenta que si el parámetro de esta función es null se devolverá true,
ya que la conversión devolverá el valor de DateTime.MinValue, por tanto, si
no quieres aceptar ese valor como válido, tendrías que añadir esta
comprobación antes del try:
if(fecha == null)
{
return false;
}


Si te interesan más conversiones entre VB y C#, puedes ver esto que tengo en
mi sitio:
http://www.elguille.info/NET/dotnet...iavbcs.htm

Nos vemos
Guillermo

Microsoft MVP Visual Basic desde 1997
Tus consultas en los foros del Guille: http://foros.elguille.info/


"Irak Rubio" wrote in message
news:
Hola, estoy migrando de VB.Net a C# y tengo unas dudas en cuanto a
equivalencias entre funciones de VB.

En visual Basic utilizo:

Instr (que me devuelve un entero si una subcadena se encuentra contenida
en
otra cadena)

IsNumeric() Falso o verdadero si una cadena puede representarse como un
numero

ASC() El valor Ascii de un caracter.

CHR() El caracter de un valor entero

IsDate() Falso o verdadero si una cadena se puede representar como una
fecha


Me gustaría saber cuales serían sus equivalentes en C#

Gracias!!!!!

Respuesta Responder a este mensaje
#2 Harvey Triana
13/08/2007 - 18:29 | Informe spam
Guille-
Quisiera complementar tu fina respuesta con la siguiente función. - Evita la
penalización try en muchas ocaciones:

public static bool IsDate(object Expression)
{
if (Expression != null)
{
if (Expression is DateTime)
{
return true;
}
if (Expression is string)
{
try
{
DateTime t = DateTime.Parse((string)Expression);
return true;
}
catch (Exception)
{
}
}
}
return false;
}

Atentamente:
<Harvey Triana />
DrillingView© Developer

Celebre:

"How can i convert my vb6 project to vb.net?
The near-universal concensus is, you can't. All you can do is rewrite it."
Karl E. Peterson



"Guillermo 'guille'" escribió en el mensaje
news:
Hola,

Para InStr debes usar IndexOf, pero recuerda que todas las funciones de VB
devuelven 1 para el primer carácter en vez de 0 que es el primer carácter
en la manipulación de cadenas en .NET.
Por ejemplo, Left(cadena, 3) sería cadena.Substring(0, 3) que sería lo
mismo que Mid(cadena, 1, 3)

Para IsNumeric no hay equivalencia, pero Harvey Triana publicó su propia
versión en este artículo:
http://www.elguille.info/colabora/N...DotNET.htm
En ese mismo artículo está el código para VB6, VB .NET y C# y maneja
varias cosas relacionadas con las cadenas.

ASC se puede "simular" haciendo un cast: (int)'c' te dará el valor ASCII
de la letra c en minúscula.
CHR (o CHRW) será la conversión de un número a char: (char)numero

IsDate, pues... tendrás que fabricarla tu mismo.
Pero así a las bravas sería simplemente una función que detecte errores y
"pruebe" si se puede convertir la cadena en un DateTime.
static public bool IsDate(string fecha)
{
try
{
DateTime fecha1 = Convert.ToDateTime(fecha);
return true;
}
catch
{
return false;
}
}
Ten en cuenta que si el parámetro de esta función es null se devolverá
true, ya que la conversión devolverá el valor de DateTime.MinValue, por
tanto, si no quieres aceptar ese valor como válido, tendrías que añadir
esta comprobación antes del try:
if(fecha == null)
{
return false;
}


Si te interesan más conversiones entre VB y C#, puedes ver esto que tengo
en mi sitio:
http://www.elguille.info/NET/dotnet...iavbcs.htm

Nos vemos
Guillermo

Microsoft MVP Visual Basic desde 1997
Tus consultas en los foros del Guille: http://foros.elguille.info/


"Irak Rubio" wrote in message
news:
Hola, estoy migrando de VB.Net a C# y tengo unas dudas en cuanto a
equivalencias entre funciones de VB.

En visual Basic utilizo:

Instr (que me devuelve un entero si una subcadena se encuentra contenida
en
otra cadena)

IsNumeric() Falso o verdadero si una cadena puede representarse como un
numero

ASC() El valor Ascii de un caracter.

CHR() El caracter de un valor entero

IsDate() Falso o verdadero si una cadena se puede representar como una
fecha


Me gustaría saber cuales serían sus equivalentes en C#

Gracias!!!!!




Respuesta Responder a este mensaje
#3 Irak Rubio
15/08/2007 - 20:58 | Informe spam
Muchas gracias distinguidos amigos!

"Harvey Triana" wrote:

Guille-
Quisiera complementar tu fina respuesta con la siguiente función. - Evita la
penalización try en muchas ocaciones:

public static bool IsDate(object Expression)
{
if (Expression != null)
{
if (Expression is DateTime)
{
return true;
}
if (Expression is string)
{
try
{
DateTime t = DateTime.Parse((string)Expression);
return true;
}
catch (Exception)
{
}
}
}
return false;
}

Atentamente:
<Harvey Triana />
DrillingView© Developer

Celebre:

"How can i convert my vb6 project to vb.net?
The near-universal concensus is, you can't. All you can do is rewrite it."
Karl E. Peterson



"Guillermo 'guille'" escribió en el mensaje
news:
> Hola,
>
> Para InStr debes usar IndexOf, pero recuerda que todas las funciones de VB
> devuelven 1 para el primer carácter en vez de 0 que es el primer carácter
> en la manipulación de cadenas en .NET.
> Por ejemplo, Left(cadena, 3) sería cadena.Substring(0, 3) que sería lo
> mismo que Mid(cadena, 1, 3)
>
> Para IsNumeric no hay equivalencia, pero Harvey Triana publicó su propia
> versión en este artículo:
> http://www.elguille.info/colabora/N...DotNET.htm
> En ese mismo artículo está el código para VB6, VB .NET y C# y maneja
> varias cosas relacionadas con las cadenas.
>
> ASC se puede "simular" haciendo un cast: (int)'c' te dará el valor ASCII
> de la letra c en minúscula.
> CHR (o CHRW) será la conversión de un número a char: (char)numero
>
> IsDate, pues... tendrás que fabricarla tu mismo.
> Pero así a las bravas sería simplemente una función que detecte errores y
> "pruebe" si se puede convertir la cadena en un DateTime.
> static public bool IsDate(string fecha)
> {
> try
> {
> DateTime fecha1 = Convert.ToDateTime(fecha);
> return true;
> }
> catch
> {
> return false;
> }
> }
> Ten en cuenta que si el parámetro de esta función es null se devolverá
> true, ya que la conversión devolverá el valor de DateTime.MinValue, por
> tanto, si no quieres aceptar ese valor como válido, tendrías que añadir
> esta comprobación antes del try:
> if(fecha == null)
> {
> return false;
> }
>
>
> Si te interesan más conversiones entre VB y C#, puedes ver esto que tengo
> en mi sitio:
> http://www.elguille.info/NET/dotnet...iavbcs.htm
>
> Nos vemos
> Guillermo
>
> Microsoft MVP Visual Basic desde 1997
> Tus consultas en los foros del Guille: http://foros.elguille.info/
>
>
> "Irak Rubio" wrote in message
> news:
>> Hola, estoy migrando de VB.Net a C# y tengo unas dudas en cuanto a
>> equivalencias entre funciones de VB.
>>
>> En visual Basic utilizo:
>>
>> Instr (que me devuelve un entero si una subcadena se encuentra contenida
>> en
>> otra cadena)
>>
>> IsNumeric() Falso o verdadero si una cadena puede representarse como un
>> numero
>>
>> ASC() El valor Ascii de un caracter.
>>
>> CHR() El caracter de un valor entero
>>
>> IsDate() Falso o verdadero si una cadena se puede representar como una
>> fecha
>>
>>
>> Me gustaría saber cuales serían sus equivalentes en C#
>>
>> Gracias!!!!!
>>
>



Respuesta Responder a este mensaje
#4 Guillermo guille
18/08/2007 - 02:52 | Informe spam
Buen punto, si señor... es que algunas veces, pues uno se va por lo fácil,
je, je... (me tengo que excusar de alguna forma, je)

Nos vemos
Guillermo

Microsoft MVP Visual Basic desde 1997
Tus consultas en los foros del Guille: http://foros.elguille.info/


"Harvey Triana" wrote in message
news:
Guille-
Quisiera complementar tu fina respuesta con la siguiente función. - Evita
la penalización try en muchas ocaciones:

public static bool IsDate(object Expression)
{
if (Expression != null)
{
if (Expression is DateTime)
{
return true;
}
if (Expression is string)
{
try
{
DateTime t = DateTime.Parse((string)Expression);
return true;
}
catch (Exception)
{
}
}
}
return false;
}

Atentamente:
<Harvey Triana />
DrillingView© Developer

Celebre:

"How can i convert my vb6 project to vb.net?
The near-universal concensus is, you can't. All you can do is rewrite it."
Karl E. Peterson



"Guillermo 'guille'" escribió en el mensaje
news:
Hola,

Para InStr debes usar IndexOf, pero recuerda que todas las funciones de
VB devuelven 1 para el primer carácter en vez de 0 que es el primer
carácter en la manipulación de cadenas en .NET.
Por ejemplo, Left(cadena, 3) sería cadena.Substring(0, 3) que sería lo
mismo que Mid(cadena, 1, 3)

Para IsNumeric no hay equivalencia, pero Harvey Triana publicó su propia
versión en este artículo:
http://www.elguille.info/colabora/N...DotNET.htm
En ese mismo artículo está el código para VB6, VB .NET y C# y maneja
varias cosas relacionadas con las cadenas.

ASC se puede "simular" haciendo un cast: (int)'c' te dará el valor ASCII
de la letra c en minúscula.
CHR (o CHRW) será la conversión de un número a char: (char)numero

IsDate, pues... tendrás que fabricarla tu mismo.
Pero así a las bravas sería simplemente una función que detecte errores y
"pruebe" si se puede convertir la cadena en un DateTime.
static public bool IsDate(string fecha)
{
try
{
DateTime fecha1 = Convert.ToDateTime(fecha);
return true;
}
catch
{
return false;
}
}
Ten en cuenta que si el parámetro de esta función es null se devolverá
true, ya que la conversión devolverá el valor de DateTime.MinValue, por
tanto, si no quieres aceptar ese valor como válido, tendrías que añadir
esta comprobación antes del try:
if(fecha == null)
{
return false;
}


Si te interesan más conversiones entre VB y C#, puedes ver esto que tengo
en mi sitio:
http://www.elguille.info/NET/dotnet...iavbcs.htm

Nos vemos
Guillermo

Microsoft MVP Visual Basic desde 1997
Tus consultas en los foros del Guille: http://foros.elguille.info/


"Irak Rubio" wrote in message
news:
Hola, estoy migrando de VB.Net a C# y tengo unas dudas en cuanto a
equivalencias entre funciones de VB.

En visual Basic utilizo:

Instr (que me devuelve un entero si una subcadena se encuentra contenida
en
otra cadena)

IsNumeric() Falso o verdadero si una cadena puede representarse como un
numero

ASC() El valor Ascii de un caracter.

CHR() El caracter de un valor entero

IsDate() Falso o verdadero si una cadena se puede representar como una
fecha


Me gustaría saber cuales serían sus equivalentes en C#

Gracias!!!!!








email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida