French traitement liste de nombres

fgh3966

Active Member
Licensed User
Bonjour :)
Merci.
Pour traiter une liste de nombres , je cherhe une solution pour en éliminer les occurences multiples et les ordonner du plus petit au plus grand sachant que ça démarre a 0 .

Est ce que les passer par les expressions conditionnelles est un bonne solution ?

Merci

'****************************************************************************************************************************************************************
Réponse

un "nombre" hexa n'est pas un nombre, mais une string - chaine - qui peut etre converti en nombre. donc, ces "nombres" s'ordennent suivant les regles de tri habituel
pour strings. pour arranger par valeur numerique, il faudra des pas additionels.

pour eviter duplicata en ajoutant une valeur hexidecimale a une liste ou a un tableau, un map est le moyen le plus simple. il laisse tomber les doubles silencieusement.
alors, si tu veux savoir quand un double a ete reconnu (et sur le point d'etre laisse), il faudra des petits pas additionels.

n.b.- si ces nombres hex sur lesquels tu fais le choix d'ajouter ou pas a ton tableau font partie d'une entree plus grande (eg, dans une base de donnees), il est possible que
plusieurs nombres hex representent des entrees tout a fait distinctes. dans ce cas-la, n'admettant pas aveuglement des doubles pourrait etre un probleme.
 

Mahares

Expert
Licensed User
Longtime User
Pour traiter une liste de nombres , je cherhe une solution pour en éliminer les occurences multiples et les ordonner du plus petit au plus grand sachant que ça démarre a 0 .
Voici an exemple complet pour eliminer les doublons dans une liste numerique at ordonner les nombles du plus petit au plus grand. C'est just pur te donner une idee. Ce n'est pas pour resoudre la question des hexa:

B4X:
Private Sub B4XPage_Created (Root1 As B4XView)
    Root = Root1
    Dim firstlist As List = Array(0, 1, 2, 3, 4, 5, 9, 33, 17, 23, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 35, 36, 36, 37, 38, 38, 38, 39, 39, 39, 40, 41, 41, 41, 42, 43, 45, 46, 50, 50, 50, 50)
    Log(firstlist.Size)
    Dim b4xs As B4XSet = B4XCollections.CreateSet  'need B4Xcollections lib
    For Each objItem As Int In firstlist
        b4xs.Add(objItem)
    Next    
    Log(b4xs.AsList.size)
    Log("----")
    b4xs.AsList.Sort(True)
    For Each Value As Int In b4xs.AsList
        Log(Value)
    Next
End Sub
 
Top