IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

nombre aléatoire unique


Sujet :

VB.NET

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    745
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 745
    Points : 166
    Points
    166
    Par défaut nombre aléatoire unique
    Bonjour,

    je souhaiterai créer une patite fonction qui puisse me générer un nombre aléatoire mais aussi et surtout unique....

    et unique par rapport a "tout"

    Bref j'avais pensé par rapport a la date l'heure les minutes les secondes et meme pourquoi pas les milisecondes...

    Si quelqu'un avait quelques trucs pour moi...

    D'avance merci

  2. #2
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Points : 13 314
    Points
    13 314
    Par défaut
    Quel est le besoin fonctionnel ? car, comme valeur unique dans le temps et l'espace, le plus simple c'est les GUID, mais ce n'est pas un nombre à proprement parler. Néanmoins, un tirage aléatoire mais imposant l'unicité dans un intervalle de temps indéterminé, ça n'a en général pas grande signification fonctionnelle, alors qu'un identifiant unique dans le temps (et même dans l'espace réseau) ça en a un, et le GUID répond à ce besoin.

    Je ne réponds pas aux questions techniques par MP ! Le forum est là pour ça...


    Une réponse vous a aidé ? utiliser le bouton

    "L’ennui dans ce monde, c’est que les idiots sont sûrs d’eux et les gens sensés pleins de doutes". B. Russel

  3. #3
    Membre averti
    Inscrit en
    Décembre 2005
    Messages
    391
    Détails du profil
    Informations personnelles :
    Âge : 48

    Informations forums :
    Inscription : Décembre 2005
    Messages : 391
    Points : 301
    Points
    301
    Par défaut
    Dim aGuid As Guid = Guid.NewGuid

    c est un numero unique

  4. #4
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Points : 13 314
    Points
    13 314
    Par défaut
    Citation Envoyé par dietrich Voir le message
    Dim aGuid As Guid = Guid.NewGuid

    c est un numero unique
    Ce n'est pas un numéro, justement, d'où ma question supra : a-t-il réellement besoin d'un nombre ?

    Je ne réponds pas aux questions techniques par MP ! Le forum est là pour ça...


    Une réponse vous a aidé ? utiliser le bouton

    "L’ennui dans ce monde, c’est que les idiots sont sûrs d’eux et les gens sensés pleins de doutes". B. Russel

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    745
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 745
    Points : 166
    Points
    166
    Par défaut
    oui j'ai besoin de ce nombre....


    mais partir sur la date, l'heure les secondes, millisecondes n'est pas une movaise idée en soit... si?

  6. #6
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Points : 13 314
    Points
    13 314
    Par défaut
    sauf que heure, minute,seconde etc .. ne constituent pas un nombre non plus.

    J'insiste : quel est le besoin fonctionnel ?

    Je ne réponds pas aux questions techniques par MP ! Le forum est là pour ça...


    Une réponse vous a aidé ? utiliser le bouton

    "L’ennui dans ce monde, c’est que les idiots sont sûrs d’eux et les gens sensés pleins de doutes". B. Russel

  7. #7
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    745
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 745
    Points : 166
    Points
    166
    Par défaut
    le besoin fonctionnel est de créer des clés uniques en base par la suite mais indépandemment d'un sgbd.

    Non je sais que l'heure, letemps , les sevcondes tout ca c pas un nombre mais en les concaténant ca en devient un!

  8. #8
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Points : 13 314
    Points
    13 314
    Par défaut
    Bon, et bien le GUID sert précisément à cela. (entre autres).

    Toutes mes clefs uniques sont en général des uniqueidentifier. (Guid).

    Et contrairement à ce que tu écrivais, tu n'as donc pas besoin d'un nombre mais d'un identifiant unique. Le problème avec la date/heure/seconde/ms est que tu as un risque (certes faible, mais je ne vois pas l'avantage à le maintenir) de conflit entre deux clients.

    Je ne réponds pas aux questions techniques par MP ! Le forum est là pour ça...


    Une réponse vous a aidé ? utiliser le bouton

    "L’ennui dans ce monde, c’est que les idiots sont sûrs d’eux et les gens sensés pleins de doutes". B. Russel

  9. #9
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    745
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 745
    Points : 166
    Points
    166
    Par défaut
    mais comme tu l'as dit le GUID n'est pas un nombre...

  10. #10
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Points : 13 314
    Points
    13 314
    Par défaut
    Citation Envoyé par Alex35 Voir le message
    mais comme tu l'as dit le GUID n'est pas un nombre...
    Oui, mais justement tu n'as pas besoin d'un nombre, mais d'un identifiant (ou si tu veux un nombre, prend les éléments du Guid et concatène les : le coup de la date n'est pas un bonne idée, car il y a risque de collision).

    Je ne réponds pas aux questions techniques par MP ! Le forum est là pour ça...


    Une réponse vous a aidé ? utiliser le bouton

    "L’ennui dans ce monde, c’est que les idiots sont sûrs d’eux et les gens sensés pleins de doutes". B. Russel

  11. #11
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    745
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 745
    Points : 166
    Points
    166
    Par défaut
    Citation Envoyé par Bluedeep Voir le message
    le coup de la date n'est pas un bonne idée, car il y a risque de collision).
    avec les millisecondes???

  12. #12
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Points : 13 314
    Points
    13 314
    Par défaut
    Citation Envoyé par Alex35 Voir le message
    avec les millisecondes???
    Oui, faible, mais il y a, et je ne vois pas d'avantage à introduire un problème potentiel dans un SI. (si tu as disons mille client qui attaquent ta base, tu ne peux pas garantir qu'il n'y aura pas deux créations dans la même milliseconde).

    Je ne réponds pas aux questions techniques par MP ! Le forum est là pour ça...


    Une réponse vous a aidé ? utiliser le bouton

    "L’ennui dans ce monde, c’est que les idiots sont sûrs d’eux et les gens sensés pleins de doutes". B. Russel

  13. #13
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    745
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 745
    Points : 166
    Points
    166
    Par défaut
    bon ok....


    et donc concretement c quoi ce guid?

    et c'est en vb.net donc qu'est ce qui m'assure de l'unicité de cette chose lorsque je relance mon prog?

  14. #14
    Membre chevronné Avatar de LooserBoy
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2005
    Messages
    1 085
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2005
    Messages : 1 085
    Points : 1 976
    Points
    1 976
    Par défaut
    Citation Envoyé par Alex35 Voir le message
    avec les millisecondes???
    Oui! potentiellement! Et ca m'est deja arrivé d'y être confronté pour un horodatage d'enregistrement
    Vu sur un paquet de cigarettes: "Fumer peut entrainer une mort lente et douloureuse"
    - Vivre aussi... Ce n'est pas forcément moins douloureux et c'est même beaucoup plus lent...

  15. #15
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Points : 13 314
    Points
    13 314
    Par défaut
    Citation Envoyé par Alex35 Voir le message
    et c'est en vb.net donc qu'est ce qui m'assure de l'unicité de cette chose lorsque je relance mon prog?
    un Guid EST unique (dans le temps ET dans l'espace - sous entendu l'espace réseau); si tu veux voir comment, Google est ton ami.

    Je ne réponds pas aux questions techniques par MP ! Le forum est là pour ça...


    Une réponse vous a aidé ? utiliser le bouton

    "L’ennui dans ce monde, c’est que les idiots sont sûrs d’eux et les gens sensés pleins de doutes". B. Russel

  16. #16
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    745
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 745
    Points : 166
    Points
    166
    Par défaut
    j'avoue je suis un peu sceptique tt de mm

  17. #17
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Points : 13 314
    Points
    13 314
    Par défaut
    Citation Envoyé par Alex35 Voir le message
    j'avoue je suis un peu sceptique tt de mm
    Quant on émet ce genre d'opinion, on argumente un minimum. Va voir comment est fichu un GUID, et reviens nous expliquer ce qui te rend sceptique (en gros, il combine adresse MAC et timestamp.

    Ton scepticisme m'étonne alors que tu étais près à admettre l'absence de collision avec simplement utilisation du timestamp.

    Je ne réponds pas aux questions techniques par MP ! Le forum est là pour ça...


    Une réponse vous a aidé ? utiliser le bouton

    "L’ennui dans ce monde, c’est que les idiots sont sûrs d’eux et les gens sensés pleins de doutes". B. Russel

  18. #18
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    745
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 745
    Points : 166
    Points
    166
    Par défaut
    et en plus c'est pour un utilisateur unique, donc pas de souci de collisions a moins qu'il soit super rapide a cliqué!

  19. #19
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    745
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 745
    Points : 166
    Points
    166
    Par défaut
    Citation Envoyé par Bluedeep Voir le message
    en gros, il combine adresse MAC et timestamp.

    la ca me parle plus meme si c'est "en gros" je vois l'unicité!


    merci en tout cas de vos réponses!

    et si j'ai bien compris un simple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    "System.Guid.NewGuid().ToString()"

    m'assure l'unicité

  20. #20
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Points : 13 314
    Points
    13 314
    Par défaut
    Citation Envoyé par Alex35 Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    "System.Guid.NewGuid().ToString()"
    m'assure l'unicité
    Voilà !!!!
    Accessoirement, si tu fais une appli qui supportent des SGBD multiples (ce qui semble être le cas), dans le cas de Sql Server tu as le type de champ spécifique UniqueIdentifier qui sert à stocker un Guid et qui sera plus performant qu'un stockage en string.

    Je ne réponds pas aux questions techniques par MP ! Le forum est là pour ça...


    Une réponse vous a aidé ? utiliser le bouton

    "L’ennui dans ce monde, c’est que les idiots sont sûrs d’eux et les gens sensés pleins de doutes". B. Russel

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Génération d'une nombre aléatoire unique
    Par jopont dans le forum BIRT
    Réponses: 18
    Dernier message: 30/06/2013, 08h49
  2. Nombre aléatoire unique
    Par poussinvert dans le forum C#
    Réponses: 8
    Dernier message: 24/02/2013, 22h18
  3. [Tableaux] 5 nombres aléatoires uniques
    Par jiojio dans le forum Langage
    Réponses: 8
    Dernier message: 06/03/2009, 13h45
  4. Un champs de nombres aléatoires uniques qui ne se suivent pas ?
    Par muad'dib dans le forum SQL Procédural
    Réponses: 6
    Dernier message: 09/04/2008, 13h53

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo