@Benubi:
Das ist nicht mein Problem!
Die Keys sind einmalig. Die Werte können aber mehrmals vorhanden sein, was ich detektieren muss.
Als Rückgabe brauche ich die Keys, bei denen doppelte Werte erkannt wurden.
Durchlauf von Map mit ForEach
Re: Durchlauf von Map mit ForEach
Never change a running system - Never run a changed system!
(PB 6.20 LTS [x86])
(PB 6.20 LTS [x86])
Re: Durchlauf von Map mit ForEach
Da ist eine Datenbank schon der richtige weg.
Alles ist möglich, fragt sich nur wie...
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
-
- Beiträge: 118
- Registriert: 22.11.2020 20:05
- Computerausstattung: 'ne Handvoll gebrauchte Laptops & PCs mit Mint Mate
Re: Durchlauf von Map mit ForEach
jetzt mal abgesehen von der Datenbanklösung oder der prophylaktischen Prüfung von Doppelwerten.
Möglicherweise interpretiere ich ja falsch - aber ist das Beispiel in der Hilfe nicht genau das, was du suchst?
Dort wird doch nach vorhandenen Doppelwerten gesucht und gelöscht, oder?
https://www.purebasic.com/german/docume ... ition.html
Möglicherweise interpretiere ich ja falsch - aber ist das Beispiel in der Hilfe nicht genau das, was du suchst?
Dort wird doch nach vorhandenen Doppelwerten gesucht und gelöscht, oder?
https://www.purebasic.com/german/docume ... ition.html
--
Ideen gibt es viele - man muss sie nur haben...
Mint LMDE5+6 // PureBasic 6.12
Ideen gibt es viele - man muss sie nur haben...
Mint LMDE5+6 // PureBasic 6.12
- TroaX
- Beiträge: 684
- Registriert: 08.03.2013 14:27
- Computerausstattung: PC: Ryzen 9 3950X, 96 GB RAM, RX6800XT, 2.5 TB SSD, 21:9 Display, Linux Mint | Lappi: Ryzen 7 5800H, 16 GB RAM, 1 TB SSD, Linux Mint
- Wohnort: NRW
- Kontaktdaten:
Re: Durchlauf von Map mit ForEach
So eine Lösung hatte er ja schon. Es geht da um die Dauer dieses Vorgehens, da er ja theoretisch jeden Wert mir jedem Wert vergleichen muss und das bei 70K Einträgen.jogo hat geschrieben: 20.01.2023 18:22 jetzt mal abgesehen von der Datenbanklösung oder der prophylaktischen Prüfung von Doppelwerten.
Möglicherweise interpretiere ich ja falsch - aber ist das Beispiel in der Hilfe nicht genau das, was du suchst?
Dort wird doch nach vorhandenen Doppelwerten gesucht und gelöscht, oder?
https://www.purebasic.com/german/docume ... ition.html
PC: Ryzen 9 3950X | 96 GB RAM | RX6800XT | 2,5 TB NVMe | Linux Mint
Notebook: 16" 3:2 | Ryzen 7 5800H | 16 GB RAM | Radeon Vega | 1TB NVMe | Linux Mint
NAS: Fritz.Box 5690 Pro (Nur für Keepass-DB)
Coding: Purebasic, Spiderbasic, GDevelop, Javascript/Node
Notebook: 16" 3:2 | Ryzen 7 5800H | 16 GB RAM | Radeon Vega | 1TB NVMe | Linux Mint
NAS: Fritz.Box 5690 Pro (Nur für Keepass-DB)
Coding: Purebasic, Spiderbasic, GDevelop, Javascript/Node
Re: Durchlauf von Map mit ForEach
Ein anderer Weg mit Reverse Lookup:techniker hat geschrieben: 20.01.2023 13:42Wie erkennst du sonst, welche Keys von Dubletten betroffen sind?mk-soft hat geschrieben: 20.01.2023 12:39 Man verwendet ja Maps um nicht durchsuchen zu müssen und ist somit schon sehr schnell.
(Dubletten sollen nicht verboten sein, aber müssen detektiert werden)
Die Map hat momentan bis zu 70'000 Elemente.
obst("key1") = "Apfel"
obst("Key2") = "Birne"
obst("key3") = "Banane"
obst("key4") = "Birne"
obst("key5") = "Weintraube"
obst("key6") = "Banane"
obst("key7") = "Banane"
Bei diesem Beispiel brauche ich folgende Keys als Ergebnis:
key2, key3, key4, key6, key7
Code: Alles auswählen
Structure kv_match
List keys.s()
EndStructure
NewMap obst.s()
obst("key1") = "Apfel"
obst("Key2") = "Birne"
obst("key3") = "Banane"
obst("key4") = "Birne"
obst("key5") = "Weintraube"
obst("key6") = "Banane"
obst("key7") = "Banane"
ForEach obst()
Debug "obst(" + MapKey(obst()) + ") = " + obst()
Next
Debug "---"
NewMap wert.kv_match()
ForEach obst()
If FindMapElement(wert(),obst()) = 0
AddMapElement(wert(), obst())
EndIf
AddElement(wert()\keys()): wert()\keys() = MapKey(obst())
Next
Debug "---"
ForEach wert()
;SortList(wert()\keys(), #PB_Sort_Ascending)
If ListSize(wert()\keys()) > 1
Debug "Wert(" + MapKey(wert()) + ") = " + ListSize(wert()\keys())
ForEach wert()\keys()
Debug wert()\keys()
Next
EndIf
Next
