Principales respuestas
Es posible determinar consecutivo de un código conteniendo letras?

Pregunta
-
Hola!
Espero y me puedan entender. Lo explicare en un ejemplo:
Dado el codigo "15B" asignado a cierto registro, al siguiente registro introducido asignarle el código "15C", y así consecutivamente a los siguientes registros ("15D", "15E", "15F" ) etc.
Así como a un valor en una variable entera se le aumenta en uno con el prefijo "VariableEntera++" es posible hacerlo de esa misma manera sencilla con letras?
Respuestas
-
hola
podrias tomar cada parte usando
string input = "15a"; string obtenerNumero = Regex.Replace(input, @"[^\d]", ""); string obtenerLetra = Regex.Replace(input, @"[^a-zA-Z]", "");
de esta forma teniendo el numero y la letra podrias incrementar cada uno por separado
saludos
Leandro Tuttini
Blog
Buenos Aires
Argentina- Propuesto como respuesta Juan Alberto Jimenez Cancela martes, 16 de octubre de 2018 23:10
- Marcado como respuesta Pablo RubioModerator jueves, 18 de octubre de 2018 16:09
-
Hola Cesar lo que pasa es que si envías 15a ya no hay un patrón para convertir a int, no se podría convertir como si pasa con una sola letra del alfabeto ya que esta corresponde a una posición numérica, pero si puedes crear una función genérica para tu uso que resiba 15a por ejemplo y te devuelva 15b, algo como esto:
private string obtenerConsecutivo(string actual) { string letraActual = actual.Last().ToString(); string letraSiguiente = ((char)((int)letraActual.ToCharArray()[0] + 1)).ToString(); return string.Format("{0}{1}", actual.Substring(0, actual.Length - 1), letraSiguiente); }
de esta forma puedes enviar siempre el consecutivo completo y el método te devolverá el siguiente y lo puedes usar donde necesites generar este tipo de consecutivos.
espero te sirva, saludos!!
El Tavo Mi Blog
- Editado ElTavo sábado, 19 de octubre de 2013 21:46
- Propuesto como respuesta Pablo RubioModerator jueves, 18 de octubre de 2018 16:09
- Marcado como respuesta Pablo RubioModerator jueves, 18 de octubre de 2018 16:09
Todas las respuestas
-
Hola Cesar, esto lo puedes aumentar un consecutivo alfabetico usando un tipo char donde almacenas tu letra por ejemplo A y a ese char lo conviertes en int y le sumas uno, de esta forma te trae la siguinte letra del alfabeto, observa este ejemplo:
string siguienteLetra = ((char)((int)'a' + 1)).ToString();
en este ejemplo siguienteLetra recibe el valor de "b", con esto puedes hacer tu consecutivo, para tu caso podría ser algo como:
ConsecutivoNumerico ++; string siguienteLetra = ((char)((int)'a' + 1)).ToString(); ConsecutivoFinal = string.Format("{0}{1}", ConsecutivoNumerico, siguienteLetra);
espero te sirva, saludos!!
El Tavo Mi Blog
-
-
Hola Cesar lo que pasa es que si envías 15a ya no hay un patrón para convertir a int, no se podría convertir como si pasa con una sola letra del alfabeto ya que esta corresponde a una posición numérica, pero si puedes crear una función genérica para tu uso que resiba 15a por ejemplo y te devuelva 15b, algo como esto:
private string obtenerConsecutivo(string actual) { string letraActual = actual.Last().ToString(); string letraSiguiente = ((char)((int)letraActual.ToCharArray()[0] + 1)).ToString(); return string.Format("{0}{1}", actual.Substring(0, actual.Length - 1), letraSiguiente); }
de esta forma puedes enviar siempre el consecutivo completo y el método te devolverá el siguiente y lo puedes usar donde necesites generar este tipo de consecutivos.
espero te sirva, saludos!!
El Tavo Mi Blog
- Editado ElTavo sábado, 19 de octubre de 2013 21:46
- Propuesto como respuesta Pablo RubioModerator jueves, 18 de octubre de 2018 16:09
- Marcado como respuesta Pablo RubioModerator jueves, 18 de octubre de 2018 16:09
-
hola
podrias tomar cada parte usando
string input = "15a"; string obtenerNumero = Regex.Replace(input, @"[^\d]", ""); string obtenerLetra = Regex.Replace(input, @"[^a-zA-Z]", "");
de esta forma teniendo el numero y la letra podrias incrementar cada uno por separado
saludos
Leandro Tuttini
Blog
Buenos Aires
Argentina- Propuesto como respuesta Juan Alberto Jimenez Cancela martes, 16 de octubre de 2018 23:10
- Marcado como respuesta Pablo RubioModerator jueves, 18 de octubre de 2018 16:09
-