Doppelte Inhalte in Array/List/Map entfernen

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
Delle
Beiträge: 1118
Registriert: 10.05.2005 22:48

Doppelte Inhalte in Array/List/Map entfernen

Beitrag von Delle »

Hallo,

ich lade aktuell diverse Nummern in Array:

Code: Alles auswählen

Dim Result$(0)
    NbFound = ExtractRegularExpression(0, GetGadgetItemText(1, #PB_Web_HtmlCode), Result$())
    For k = 0 To NbFound-1
      Debug Result$(k)
    Next
Darunter sind auch einige doppelte Nummern... wie bekomme ich die jetzt ohne viele Schleifen und Tralala wieder raus?

Notfalls würde ich auch Listen oder Maps nehmen falls es damit einfach geht...

Danke!
PB 6.02 LTS + Win 11
Benutzeravatar
#NULL
Beiträge: 2235
Registriert: 20.04.2006 09:50

Re: Doppelte Inhalte in Array/List/Map entfernen

Beitrag von #NULL »

Map definieren, jeden wert als mapkey setzten, über die mapkeys iterieren:

Code: Alles auswählen

Dim arr.s(10)
For i=0 To 10
  arr(i) = Str(Random(2))
Next

Debug "with dups:"
For i=0 To 10
  Debug arr(i)
Next

NewMap nodups()
For i=0 To 10
  nodups(arr(i)) = 0 ; dummy value, not used
Next

Debug "without dups:"
ForEach nodups()
  Debug MapKey(nodups())
Next
my pb stuff..
Bild..jedenfalls war das mal so.
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8675
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 32 GB DDR4-3200
Ubuntu 22.04.3 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken
Kontaktdaten:

Re: Doppelte Inhalte in Array/List/Map entfernen

Beitrag von NicTheQuick »

In Maps kann jeder Schlüssel nur einmal existieren und du kannst mit einem Befehl herausfinden, ob ein Schlüssel schon existiert oder nicht. Probier es doch also mal mit Maps. :-)
Bild
Benutzeravatar
Mijikai
Beiträge: 754
Registriert: 25.09.2016 01:42

Re: Doppelte Inhalte in Array/List/Map entfernen

Beitrag von Mijikai »

Weiß nicht wie schnell CompareMemory() ist aber vielleicht ist das auch noch eine Option.
Denke jedoch das die MAP Lösung besser ist.
Benutzeravatar
Delle
Beiträge: 1118
Registriert: 10.05.2005 22:48

Re: Doppelte Inhalte in Array/List/Map entfernen

Beitrag von Delle »

Das heißt ich muss mittels Schleife das Array durchlaufen und in eine Map schreiben? Dann dürfte dort automatisch keine doppelten Einträge landen oder?
PB 6.02 LTS + Win 11
Benutzeravatar
RSBasic
Admin
Beiträge: 8022
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: Doppelte Inhalte in Array/List/Map entfernen

Beitrag von RSBasic »

Doppelte Einträge werden bei der Map automatisch überschrieben, wenn der Indexname gleich ist.
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
Benutzeravatar
Delle
Beiträge: 1118
Registriert: 10.05.2005 22:48

Re: Doppelte Inhalte in Array/List/Map entfernen

Beitrag von Delle »

Funzt prima, danke! :)

Code: Alles auswählen

    For k = 0 To NbFound-1
      Country(Result$(k)) = ""
    Next
    
    
    ForEach Country()
    Debug MapKey(Country())
  Next
PB 6.02 LTS + Win 11
Antworten