Supongamos que la variable se llama V.
Desde tipo número obtener un número:(sólo usar si se sabe que V es número).
1- Cantidad de caracteres.
Los lenguajes de programación suelen tener una función para esto, quizá antes es necesario convertir al número en texto.
Sin esa función tendría que ser algo como:
Largo = 0
Lupa = -1
Repetir
Lupa++
Si caracter nro Lupa de V != vacío
Largo++
sino
Lupa = -1
mientras Lupa != -1
2- Cantidad de caracteres sin contar el "-" (si tiene).
Los lenguajes suelen tener una función que convierte un número a su absoluto, pero sino podría ser:
Igual que el anterior pero luego poner:
Si el 1er caracter de V == "-"
__Largo--
3- Cantidad de caracteres sin contar la "," (si tiene).
ValorObtenido = Largo de (Quitar decimales a V)
Sin esa función o similares habría que hacer algo como:
Largo = 0
Lupa = -1
Repetir
Lupa++
Si caracter nro Lupa de V != vacío y != ","
Largo++
sino
Lupa = -1
mientras Lupa != -1
4- Cantidad de caracteres sin contar los (inserte número de un caracter).
Largo = 0
Lupa = -1
Repetir
Lupa++
Si caracter nro Lupa de V != vacío y != (caracter)
Largo++
sino
Lupa = -1
mientras Lupa != -1
5- Cantidad de caracteres sin contar los (inserte caracter1) ni los (inserte2).
Largo = 0
Lupa = -1
Repetir
Lupa++
Si caracter nro Lupa de V != vacío y != (caracter1) y != (c2)
Largo++
sino
Lupa = -1
mientras Lupa != -1
Si se tienen muchas excepciones, para evitar poner muchos ifs se podría hacer algo como:
// Excepciones (1 es excepción), se pueden poner hasta 10:
Char0 = 1
Char1 = 1
Char3 = 1
Char4 = 1
Char5 = 1
Largo = 0
Lupa = -1
Repetir
Lupa++
Si caracter nro Lupa de V != vacío
Si eval("Char"+(caracter nro Lupa de V)) != 1
Largo++
sino
Lupa = -1
mientras Lupa != -1
Si se quiere exceptuar "," o "-" no sé cómo evitar agregar ifs para eso.
6- Cantidad de caracteres sin contar los (inserte 2 caracteres).
NoContar = (inserte2c)
Largo = 0
Lupa = -1
Repetir
Lupa++
Si caracter nro Lupa de V es != vacío
Si caracter nro Lupa de V == caracter nro 1 de NoContar
Lupa++
Si caracter nro Lupa de V != caracter nro 2 de NoContar
Lupa--
Largo++
sino
Lupa = -1
mientras Lupa != -1
Creo...
7- Cantidad de caracteres sin contar los (inserte un número).
Se puede hacer como el anterior pero si la excepción es más larga que la cantidad de caracteres analizados en el código no funcionará bien. Para que funcione bien habría que meter un while pero no soy muy hábil en eso, a ver:
Excepcion = (inserte número)
ExcepcionLargo = Largo de Excepcion, duh!
Largo = 0
Lupa = -1
Repetir
Lupa++
Si caracter nro Lupa de V es != vacío
Si caracter nro Lupa de V == caracter nro 1 de Excepcion
LupaBackup = Lupa
Lupa2 = 0
Repetir
Lupa2++
Si caracter nro Lupa2 de Excepcion == vacío
// La excepción ocurrió
Lupa2 = -1
sino si caracter nro Lupa2 de Excepcion != caracter nro Lupa de V
// La excepción no ocurrió
Largo++
Lupa = LupaBackup
Lupa2 = -1
sino
Lupa++
Lupa2++
mientras Lupa2 != -1
sino
Largo++
sino
Lupa = -1
mientras Lupa != -1
Probablemente tenga algún error.
8- Cantidad de caracteres sin contar los (inserte número1, número2...).
// Inserte todas las excepciones que quiera, con el formato Ex(número aquí).
Ex(inserte número1) = 1
Ex(inserte número2) = 1
Ex(inserte número3) = 1
Ex(inserte número4) = 1
Ex(inserte número5) = 1
ExMinLargo = (inserte)
ExMaxLargo = (inserte)
Largo = 0
Lupa = -1
MaxLupa = (Largo de V) - ExMinLargo
Si MaxLupa < 0
// La excepción más corta es más larga que V, ergo no está incluída.
Largo = Largo de V
sino si MaxLupa == 0
// La excepción más corta es igual de larga que V, ergo basta con chequear ese largo.
Si eval("Ex"+NumaChequear) != 1
Largo = Largo de V
sino
Largo = 0
sino
Repetir
Lupa++
Lupa2 = Lupa
NumaChequear = ""
// Lo siguiente toma tantos caracteres de V como son necesarios para tener el largo igual al largo de la excepción más corta.
Repetir
Lupa2++
Si caracter nro Lupa2 de V es != vacío
NumaChequear = Concatenar (NumaChequear, (Caracter nro Lupa2 de V))
sino
// V ya no tiene caracteres sin chequear, ergo no hay más excepciones, fin.
Largo = Largo + Lupa2 - Lupa
Lupa2 = ExMinLargo+1
mientras Lupa2 < ExMinLargo
Si Lupa2 != ExMinLargo+1
// Si V aún tiene caracteres sin chequear.
Si eval("Ex"+NumaChequear) != 1
// El número tomado no es excepción. Se agregarán caracteres hasta que no haya, o hallar una excepción, o superar el largo de la excepción más larga.
Repetir
Lupa2++
Si caracter nro Lupa2 de V es == vacío
Lupa2 = ExMaxLargo+1
sino
NumaChequear = Concatenar (NumaChequear, (Caracter nro Lupa2 de V))
Si eval("Ex"+NumaChequear) == 1
// Es una excepción.
Lupa2 = ExMaxLargo+1
mientras Lupa2 < ExMaxLargo
Si Lupa2 == ExMaxLargo+1
Largo++
mientras Lupa < MaxLupa
Más probablemete tenga error, me perdí bastante.
Bueno dejaré de hacer estos códigos por un tiempo, primero me interesa ver qué se puede obtener de una variable.
Próximamente posteo casos de contar caracteres específicos e iré posteando más cosas.