Hola que tal, bueno lo prometido es deuda... Me tarde un poco porque tenia unas cosas que terminar
Código C#:
Ver originalpublic static void fCadenas()
{
string sCadena = "C140K42---P150", sPuente = "";
string sCadenaFinal = null;
Int32 i = 0, nCaracteres = 0, nTotalCaracteresCopiar = 0;
char[] cImporteFormatear = new char[20];
char[] cFormato = new char[10];
bool bSeguir = true;
try
{
// Se limpian las cadenas char
for (i = 0; i <= 19; i++)
{
cImporteFormatear[i] = ' ';
}
for (i = 0; i <= 9; i++)
{
cFormato[i] = ' ';
}
// Se cambia la cadena String por char
for (i = 0; ( i < sCadena.Length ) && bSeguir; i++)
{
cImporteFormatear[i] = sCadena[nCaracteres];
nCaracteres++;
}
// Se lee la cadena char desde el ultimo registro hasta el primero, siempre y cuando sea número ira tomando los valores.
// Al encontrar la primera letra saldra del ciclo.
// Se obtiene el valor 051
nCaracteres = 0;
sCadenaFinal = new string(cImporteFormatear);
nTotalCaracteresCopiar = sCadenaFinal.ToString().Trim().Length;
for (i = cImporteFormatear.ToString().Length; (i > 0) && bSeguir; i--)
{
nTotalCaracteresCopiar--;
if (Char.IsNumber(cImporteFormatear[nTotalCaracteresCopiar]))
{
cFormato[nCaracteres] = cImporteFormatear[nTotalCaracteresCopiar];
nCaracteres++;
}
else
{
bSeguir = false;
}
}
// Se limpian las cadenas char
for (i = 0; i <= 19; i++)
{
cImporteFormatear[i] = ' ';
}
// Se lee la cadena char desde el ultimo registro hasta el primero, para mostrarlos ordenados ( Se lee el valor 150 )
nCaracteres = 0;
sCadenaFinal = new string(cFormato);
sPuente = sCadenaFinal.ToString().Trim();
nTotalCaracteresCopiar = sPuente.Length;
for (i = sPuente.Length; i > 0; i--)
{
nTotalCaracteresCopiar--;
cImporteFormatear[nCaracteres] = cFormato[nTotalCaracteresCopiar];
nCaracteres++;
}
string sCadenaMostrar = new string(cImporteFormatear);
MessageBox.Show(sCadenaMostrar);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message.ToString());
}
}
Lo hice en C# y funciona sin importar cuantos numeros tengas al final.
Espero te sirva
Esta hecho de un modo rapido, pero si lo puedes mejorar adelante, esta seria la idea principal
![apachar ojo](http://static.forosdelweb.com/fdwtheme/images/smilies/wink.png)
... Cualquier cosa me avisas.