elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP)
| | | |-+  Programación Visual Basic (Moderadores: LeandroA, seba123neo)
| | | | |-+  [RETO] Entero a cadena
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: [RETO] Entero a cadena  (Leído 8,023 veces)
Karcrack


Desconectado Desconectado

Mensajes: 2.416


Se siente observado ¬¬'


Ver Perfil
[RETO] Entero a cadena
« en: 30 Agosto 2010, 22:23 pm »

No os parece que ha pasado muchisimo desde el ultimo reto? :rolleyes: :xD

Pues este es bien simple... la forma mas rapida de pasar de numero a cadena...

Ej:
Código:
1337 -> "1337"

Por asi decirlo es un reemplazo a Str()

Ha de recibir Long y devolver String.
Ha de aceptar numeros negativos.

Venga, a codear!


En línea

Karcrack


Desconectado Desconectado

Mensajes: 2.416


Se siente observado ¬¬'


Ver Perfil
Re: [RETO] Entero a cadena
« Respuesta #1 en: 30 Agosto 2010, 22:33 pm »

Aqui esta, como siempre, la forma logica:
Código
  1. Public Function ItoA01(ByVal lNumb As Long) As String
  2.    ItoA01 = Str$(lNumb)
  3. End Function


En línea

Psyke1
Wiki

Desconectado Desconectado

Mensajes: 1.089



Ver Perfil WWW
Re: [RETO] Entero a cadena
« Respuesta #2 en: 30 Agosto 2010, 23:02 pm »

Mira el mio:
Código
  1. Public Function ItoA02(ByVal lNumber As Long) As String
  2.    ItoA02 = CStr(lNumber)
  3. End Function
:xD :xD :laugh: :laugh:

PD: Si soy sincero no se ni por donde empezar... :-( :silbar:

DoEvents¡! :P
« Última modificación: 30 Agosto 2010, 23:23 pm por *PsYkE1* » En línea

raul338


Desconectado Desconectado

Mensajes: 2.633


La sonrisa es la mejor forma de afrontar las cosas


Ver Perfil WWW
Re: [RETO] Entero a cadena
« Respuesta #3 en: 30 Agosto 2010, 23:03 pm »

Pues la verdad dudo que se pueda hacer una funcion taan rapida como la CStr o Str$... pero bueno, ya hare la mia :P
En línea

Karcrack


Desconectado Desconectado

Mensajes: 2.416


Se siente observado ¬¬'


Ver Perfil
Re: [RETO] Entero a cadena
« Respuesta #4 en: 30 Agosto 2010, 23:09 pm »

Este es mi primer intento, no es mas rapido que CStr() ni Str(), pero he tenido una idea a ver si me sale, luego intento >:D
Código
  1. Public Static Function ItoA02(ByVal lNumb As Long) As String
  2.    Dim sTable(9)   As String
  3.    Dim b           As Boolean
  4.    Dim x           As Boolean
  5.  
  6.    x = CBool(lNumb And &H80000000)
  7.    If x Then lNumb = (lNumb Xor x) - x
  8.  
  9.    If b = False Then
  10.        sTable(0) = "0":        sTable(1) = "1"
  11.        sTable(2) = "2":        sTable(3) = "3"
  12.        sTable(4) = "4":        sTable(5) = "5"
  13.        sTable(6) = "6":        sTable(7) = "7"
  14.        sTable(8) = "8":        sTable(9) = "9"
  15.        b = True
  16.    End If
  17.    Do
  18.        ItoA02 = sTable(lNumb Mod 10) & ItoA02
  19.        lNumb = lNumb \ 10
  20.    Loop While lNumb
  21.  
  22.    If x Then x = False: ItoA02 = "-" & ItoA02
  23. End Function
En línea

Karcrack


Desconectado Desconectado

Mensajes: 2.416


Se siente observado ¬¬'


Ver Perfil
Re: [RETO] Entero a cadena
« Respuesta #5 en: 30 Agosto 2010, 23:28 pm »

Código
  1. Public Function ItoA03(ByVal lNumb As Long) As String
  2.    Dim bvRet(10)   As Byte
  3.    Dim i           As Long
  4.    Dim b           As Boolean
  5.  
  6.    b = lNumb < 0
  7.    If b Then lNumb = -lNumb
  8.  
  9.    i = 10
  10.  
  11.    Do
  12.        bvRet(i) = 48 + (lNumb Mod 10)
  13.        lNumb = lNumb \ 10
  14.        i = i - 1
  15.    Loop While lNumb
  16.  
  17.    If b Then bvRet(i) = 45
  18.  
  19.    ItoA03 = SysAllocStringLen(bvRet(i), 10 - i)
  20. End Function
Código:
http://www.xbeat.net/vbspeed/download/TLB_string.zip

Mas rapido que Str(), pero no mas que CStr() :-\
En línea

LeandroA
Moderador
***
Desconectado Desconectado

Mensajes: 760


www.leandroascierto.com


Ver Perfil WWW
Re: [RETO] Entero a cadena
« Respuesta #6 en: 30 Agosto 2010, 23:37 pm »

Hola y no es valido asi?

Código:
Private Function ItoA03(lNumb As Long) As String
    ItoA03 = lNumb
End Function


En línea

Psyke1
Wiki

Desconectado Desconectado

Mensajes: 1.089



Ver Perfil WWW
Re: [RETO] Entero a cadena
« Respuesta #7 en: 30 Agosto 2010, 23:39 pm »

Hola y no es valido asi?

Código:
Private Function ItoA03(lNumb As Long) As String
    ItoA03 = lNumb
End Function
Jajajajajajaja :xD
Aun mas rapido que el mio!!

LeandroA > PsYkE1 > Karcrack
 :laugh:

DoEvents¡! :P
En línea

raul338


Desconectado Desconectado

Mensajes: 2.633


La sonrisa es la mejor forma de afrontar las cosas


Ver Perfil WWW
Re: [RETO] Entero a cadena
« Respuesta #8 en: 30 Agosto 2010, 23:43 pm »

Naaa karcrack, yo tenia una idea parecida, pero me tuve que ir :¬¬ aver...si se me ocurre algo.....
En línea

Karcrack


Desconectado Desconectado

Mensajes: 2.416


Se siente observado ¬¬'


Ver Perfil
Re: [RETO] Entero a cadena
« Respuesta #9 en: 30 Agosto 2010, 23:50 pm »

Hola y no es valido asi?

Código:
Private Function ItoA03(lNumb As Long) As String
    ItoA03 = lNumb
End Function
No, no vale :¬¬ :¬¬ Eso es trampa! :xD No se porque pero cuando yo lo prove era mas lento :¬¬
Ale, pues otra cosa mas a la que superar :laugh:

MOD: Hace lo mismo que CStr internamente, asi que realmente es lo mismo :P
« Última modificación: 30 Agosto 2010, 23:54 pm por Karcrack » En línea

Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[RETO] Recortar cadena. « 1 2 »
Programación Visual Basic
Psyke1 14 7,703 Último mensaje 29 Octubre 2011, 02:22 am
por BlackZeroX
Pasar de cadena(char) a entero(int) sin sobrepasar el máximo permitido. « 1 2 3 »
Programación C/C++
NOB2014 21 10,927 Último mensaje 9 Enero 2014, 14:35 pm
por leosansan
Programación en batch. Comparar una cadena con un entero
Programación General
juntacadaveres 1 2,798 Último mensaje 15 Marzo 2019, 18:54 pm
por Baphomet2204
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines