Autor |
Mensaje |
tincho
Analista Programador
Registrado: Noviembre 2014
Mensajes: 2565
Edad: 48 Ubicación:
|
Generar Un Identificador único Universal
Hola a todos.
Necesitaba generar un identificador universal en un programa y se me ocurrió esta función que usa ordenes de la shell de linux.
Pero me gustaría saber si en gambas hay algun componente o función que genere dicho identificador sin tener que usar shell.
¿Alguna idea?
Saludos.
|
#1 Miercoles, 12 Junio 2019, 09:44 |
|
|
vuott
Analista Programador
Registrado: Agosto 2013
Mensajes: 2086
Edad: 60 Ubicación:
|
Re: Generar Un Identificador único Universal
... sin tener que usar shell.
¿Alguna idea?
Yo propondría una solución con llamada de funciones externas:
|
#2 Miercoles, 12 Junio 2019, 11:10 |
|
|
shordi
Analista Programador
Registrado: Septiembre 2009
Mensajes: 4982
Edad: 64 Ubicación: Albacete
|
Re: Generar Un Identificador único Universal
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
=================== No podemos regresar
|
#3 Miercoles, 12 Junio 2019, 11:34 |
|
|
tincho
Analista Programador
Registrado: Noviembre 2014
Mensajes: 2565
Edad: 48 Ubicación:
|
Re: Generar Un Identificador único Universal
... sin tener que usar shell.
¿Alguna idea?
Yo propondría una solución con llamada de funciones externas:
Gracias por el aporte Vuott.
Cual seria la forma de incorporar esto a un proyecto gambas?
Yo suelo crear funciones que pongo dentro de un módulo, y luego las llamo al estilo Elmodulo.Lafuncion() pero tu ejemplo tiene variables globales así que lo correcto seria crear una clase sola para esto no?
Saludos.
|
#4 Miercoles, 12 Junio 2019, 21:43 |
|
|
vuott
Analista Programador
Registrado: Agosto 2013
Mensajes: 2086
Edad: 60 Ubicación:
|
Re: Generar Un Identificador único Universal
pero tu ejemplo tiene variables globales...
Do... donde están las variables globales ?
Private Extern ....... es una declaración de Función externa.
|
#5 Miercoles, 12 Junio 2019, 22:06 |
|
|
vuott
Analista Programador
Registrado: Agosto 2013
Mensajes: 2086
Edad: 60 Ubicación:
|
Re: Generar Un Identificador único Universal
Cual seria la forma de incorporar esto a un proyecto gambas?
... lo correcto seria crear una clase sola para esto no?
Si no tiene Eventos, puedes usar un Modulo.
Por ejemplo, tenemos un Modulo, que se llama Module1.
Este Modulo tiene una Función que se llama UuidModulo ( ) y devuelve una cadena:
|
#6 Miercoles, 12 Junio 2019, 22:14 |
|
|
tincho
Analista Programador
Registrado: Noviembre 2014
Mensajes: 2565
Edad: 48 Ubicación:
|
Re: Generar Un Identificador único Universal
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
Si, de hecho es lo que uso ahora mismo.
Pero quería aprender sobre este UUID ya que se usa en muchos sitios.
Lo curioso es que los UUID (no se si todos los casos) también incluyen un timestamp
Por ejemplo acá hay una libreria que seguro usa mucho Vuott
https://pythonhosted.org/time-uuid/
Ejemplo de código
import uuid
import time_uuid
my_uuid = uuid.UUID('{12345678-1234-5678-1234-567812345678}')
ts = time_uuid.TimeUUID(bytes=my_uuid.bytes).get_timestamp()
Bueno algo así es lo que me interesaría que exista en gambas.
Pero otro tema es que buscar algo en gambas es muy difícil. Pero pondré otro post para este tema.
Saludos.
|
#7 Miercoles, 12 Junio 2019, 22:52 |
|
|
vuott
Analista Programador
Registrado: Agosto 2013
Mensajes: 2086
Edad: 60 Ubicación:
|
Re: Generar Un Identificador único Universal
.... una libreria que seguro usa mucho Vuott
Aaaaaaargh !
Vade retro, Satan !
Vade retro, Serpens !
|
#8 Miercoles, 12 Junio 2019, 23:11 |
|
|
tincho
Analista Programador
Registrado: Noviembre 2014
Mensajes: 2565
Edad: 48 Ubicación:
|
Re: Generar Un Identificador único Universal
Do... donde están las variables globales ?
Private Extern ....... es una declaración de Función externa.
Ok, si me refiero a eso.
Valga la redundancia estas declaraciones son externas a la función.
Saludos.
|
#9 Miercoles, 12 Junio 2019, 23:23 |
|
|
tercoIDE
Analista Programador
Registrado: Noviembre 2013
Mensajes: 713
Edad: 54
|
Re: Generar Un Identificador único Universal
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
|
#10 Jueves, 13 Junio 2019, 12:57 |
|
|
|