Foro de elhacker.net

Programación => .NET (C#, VB.NET, ASP) => Mensaje iniciado por: birik en 20 Mayo 2013, 12:17 pm



Título: convertir numero a cadena alafabetica
Publicado por: birik en 20 Mayo 2013, 12:17 pm
Hola a todos!

Me ha surgido la necesidad den mi programa de convertir un numero sea el que sea a una cadena alfabética. es decir
1->a
2->b
.
.
.
555123->asakdads-> o la que le corresponda (he puesto un numero al azar)

Y la verdad es que llevo horas dándole duro a la función y no consigo nada bueno, lo único que e conseguido ahora es que genere bien hasta la ZZ, ya que cuando pasa a AAA solo avanza la primera y última letra, es decir nunca cambia la de en medio, ademas de que nunca pasa de esas 3 letras.

Os pongo lo que tengo por si podéis ayudarme o indicarme un poco por donde tirar

Saludos y gracias

Código:
  Private Function prueba(ByVal num As Integer) As String
        Dim listaLetrasArray As String() = {"a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z"}

        If (num > 25) Then

            Dim numeroentero As Integer = (num \ 26) - 1
            If (numeroentero > 25) Then
                Dim chi As Integer = numeroentero \ 26
                chi = numeroentero / 26
                numeroentero = numeroentero - (26 * (numeroentero \ 26))
                num = num - (26 * ((num \ 26) - 1))
            Else
                num = num - (26 * (num \ 26))
            End If

            Return listaLetrasArray(numeroentero) & prueba(num)
        Else

            Return listaLetrasArray(num)

        End If

    End Function


Título: Re: convertir numero a cadena alafabetica
Publicado por: ABDERRAMAH en 20 Mayo 2013, 15:11 pm
¿y si lo analizas cifra por cifra? se me ocurre transformarlo a texto y recorrer cada caracter.

Código:
dim strnum as string = cstr(2561)

for each c as char in strnum
' codigo que sustituye el carácter
next

igual simplifica todo un poco.


Título: Re: convertir numero a cadena alafabetica
Publicado por: birik en 21 Mayo 2013, 08:56 am
creo que no valdría, ya que no se puede analizar numero por numero, si no que hay que analizar el numero en si ya que si por ejemplo tenemos el número 26, si lo analizamos carácter a carácter el resultado que daría seria -> BF siendo realmente el valor correspondiente Z.

La cosa esta en que sería convertir el número que tengo, el cual estará en base 10, a base 26, ya que el alfabeto tiene 26 letras, y de ahí sacar las letras que el corresponden.


Título: Re: convertir numero a cadena alafabetica
Publicado por: ABDERRAMAH en 21 Mayo 2013, 17:44 pm
creo que la parte conflictiva es esta:
Citar
Return listaLetrasArray(numeroentero) & prueba(num)
yo intentaría hacerlo con un loop, evitando la autollamada.