Portal    Foro    Buscar    FAQ    Registrarse    Conectarse


Publicar nuevo tema  Responder al tema 
Página 2 de 2
Ir a la página Anterior  1, 2
 
Generar Un Identificador único Universal
Autor Mensaje
Responder citando   Descargar mensaje  
Mensaje Re: Generar Un Identificador único Universal 
 
Una solución de gambas. No hay llamadas externas.

uuidgen
 



 
cogier - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Generar Un Identificador único Universal 
 
tercoIDE escribió:  
shordi escribió:  
Y yo propondría uno basado en la función now() que incluya los milisegundos. Esa no falla, es de gambas y es sencilla.
Algo así: (cito de memoria)

format(now(),"yyyymmddhhmmss")&str(timer)

Saludos


me pregunto si no existe la posibilidad de dos llamadas seguidas a esta función den el mismo resultado, con lo que el identificador no seria único

Timer the da el número de milisegundos desde que empezó la ejecución del programa, por lo que sumado a la fecha, hora, minuto y segundo, es imposible una duplicidad.
 




===================
No podemos regresar
 
última edición por shordi el Jueves, 13 Junio 2019, 17:57; editado 1 vez 
shordi - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Generar Un Identificador único Universal 
 
cogier escribió:  
Una solución de gambas. No hay llamadas externas.

uuidgen



Magistral! Un uso muy inteligente de Hex, Rand y loops.

Haber leído las especificaciones de uuid también ayuda bastante    

https://tools.ietf.org/html/rfc4122#section-4

Gracias
 




===================
Jesús Guardón

Por favor, usemos el corrector ortográfico antes de pulsar el botón "Enviar".

"uo ǝs ʇɐu pıɟıɔıן ɐdɹǝupǝɹ ɐ dɹoƃɹɐɯɐɹ, soןo ɥɐʎ bnǝ dɹodouǝɹsǝןo"
 
jguardon - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Generar Un Identificador único Universal 
 
...y creo mejor:

Public Sub Main()

  Dim uuid As String

  uuid = File.Load("/proc/sys/kernel/random/uuid")

  Print RTrim(uuid)

End


https://es.wikipedia.org/wiki//dev/random
 



 
última edición por vuott el Jueves, 13 Junio 2019, 21:08; editado 3 veces 
vuott - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Generar Un Identificador único Universal 
 
shordi escribió: [Ver mensaje]
tercoIDE escribió: [Ver mensaje]
shordi escribió: [Ver mensaje]
Y yo propondría uno basado en la función now() que incluya los milisegundos. Esa no falla, es de gambas y es sencilla.
Algo así: (cito de memoria)

format(now(),"yyyymmddhhmmss")&str(timer)

Saludos


me pregunto si no existe la posibilidad de dos llamadas seguidas a esta función den el mismo resultado, con lo que el identificador no seria único

Timer the da el número de milisegundos desde que empezó la ejecución del programa, por lo que sumado a la fecha, hora, minuto y segundo, es imposible una duplicidad.


ahora entiendo, Timer da el lapso en Femto-segundos, o sea precisión 10E-15 , entonces si, dos llamadas a Timer seguidas son numeros distintos ; en milisegundos es el mismo numero
 



 
tercoIDE - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Generar Un Identificador único Universal 
 
He hecho la prueba de verdad (antes la puse de memoria) y este sería el código:

Replace(Format(Now(), "yyyymmddhhnnss") & Str(Timer), ",", "")


Le añado el replace para eliminar la coma de los decimales.

Dos llamadas seguidas en mi máquina (Intel Core i5-7400 a 3.500 mhz) es este:

20190614095508117180939399998
20190614095508117187628600004

Saludos.
 




===================
No podemos regresar
 
shordi - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Generar Un Identificador único Universal 
 
shordi escribió:  
He hecho la prueba de verdad (antes la puse de memoria) y este sería el código:

Replace(Format(Now(), "yyyymmddhhnnss") & Str(Timer), ",", "")


Le añado el replace para eliminar la coma de los decimales.

Dos llamadas seguidas en mi máquina (Intel Core i5-7400 a 3.500 mhz) es este:

20190614095508117180939399998
20190614095508117187628600004

Saludos.


leyendo el link que apunta jguardon hay una parte que recomienda no usar esta forma de generacion porque en PC con huso horario distinto hay mas chances de duplicar las Id que de la otra manera...

o por lo menos eso entendi yo  
 



 
tercoIDE - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Generar Un Identificador único Universal 
 
tercoIDE escribió:  
shordi escribió:  
He hecho la prueba de verdad (antes la puse de memoria) y este sería el código:

Replace(Format(Now(), "yyyymmddhhnnss") & Str(Timer), ",", "")


Le añado el replace para eliminar la coma de los decimales.

Dos llamadas seguidas en mi máquina (Intel Core i5-7400 a 3.500 mhz) es este:

20190614095508117180939399998
20190614095508117187628600004

Saludos.


leyendo el link que apunta jguardon hay una parte que recomienda no usar esta forma de generacion porque en PC con huso horario distinto hay mas chances de duplicar las Id que de la otra manera...

o por lo menos eso entendi yo  


Posibilidades astronómicas, creo yo...
 




===================
No podemos regresar
 
shordi - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Mostrar mensajes anteriores:    
 
Ocultar¡Este tema fue útil?

 

Elegir valoración:                       

Media de valoración Valoración mínima Valoración máxima Número de valoraciones
0.00 0 0 0
 
OcultarTemas parecidos
Tema Autor Foro Respuestas último mensaje
No hay nuevos mensajes Generar Instalador anahaga General 9 Domingo, 14 Noviembre 2010, 17:11 Ver último mensaje
tururu
No hay nuevos mensajes Generar Reportes Marcosjuv General 1 Jueves, 01 Septiembre 2011, 00:41 Ver último mensaje
RodSanRey
No hay nuevos mensajes URM (Universal ROM Manager) drjuano Aplicaciones/Fragmentos de Código 17 Domingo, 08 Diciembre 2013, 23:48 Ver último mensaje
misael
No hay nuevos mensajes DBeaver. Manager Universal De Base De Datos Shell Bases de Datos 4 Martes, 11 Marzo 2014, 20:21 Ver último mensaje
jguardon
 

Publicar nuevo tema  Responder al tema  Página 2 de 2
Ir a la página Anterior  1, 2

Usuarios navegando en este tema: 0 registrados, 0 ocultos y 1 invitado
Usuarios registrados conectados: Ninguno


 
Lista de permisos
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas
No puede adjuntar archivos
No puede descargar archivos
No puede publicar eventos en el calendario