[ Foro de C# ]

Nuevo de VB a C#

26-Sep-2020 20:07
Jo0t4a Jota
4 Respuestas

Hola..
Antes de nada pediros disculpas soy novato y aunque llevo muchos años programando solo llevo unos días haciendo una aplicación en C#. De momento me apaño bien pero quiero consultaros algo.

¿Realmente es tan farragoso hacer instrucciones del tipo Left, Rigth, Mid como las que disponemos en VB?

Un comando del estilo:


str=right$("000" + Str$(Asc(srt2)),3) 
 ' Rellena por la izq ceros tras convertir a valor ASCII un string.



Se convierte en


strVariable2 = ("000" + Convert.ToString(Asc(strVariable))).Substring(("000" + Convert.ToString(Asc(strVariable))).Length - 3);


¿es todo así? Las probabilidades de equivocarse son enormes.


26-Sep-2020 20:36
Nacho Cabanes (+84)

No es tan complicado. Tienes un ".Substring", que es el equivalente al Left$, Right$, Mid$, todo en uno.

Y puedes crearte tus propias funciones simplificadas a partir de él si quieres, claro.

Pero muchas veces, lo que debes hacer es un cambio de mentalidad. Si sólo quieres añadir ceros por la izquierda, hay formas mucho más simples. ¿Qué es lo que necesitas? Porque a mí me parece muy engorroso ese "str=right$("000" + Str$(Asc(srt2)),3)"


26-Sep-2020 21:25
Jo0t4a Jota

Hola...
Gracias por contestar, bueno eso es una función, que lo hace es a un numero ponerlo en tres dígitos
de manera que el 1 , 10, 120
se representan como 001, 010, 120, siempre como string.



Saludos


27-Sep-2020 08:38
Nacho Cabanes (+84)

Eso en C# lo puedes hacer simplemente con un "ToString" y un código de formato adecuado:


int numero = 5;
Console.WriteLine( numero.ToString("000") );


 


27-Sep-2020 22:08
Jo0t4a Jota

Muchas Gracias de nuevo, lo probare.

La verdad llevo una semana con el c#, viniendo del VB6 y ya le he pillado el tranquillo, me falta mucho por aprender, pero no me parece tan complicado, fallo mucho en los ;  paréntesis llaves, no estoy acostumbrado y es un poco lio, pero me esta gustando este lenguaje.

Gracias






(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)