German Fehlende kleinste Zahl ermitteln

Sinan Tuzcu

Well-Known Member
Licensed User
Hallo,

ich rufe aus der Map-Datei bestimmte KEYs und möchte aus den gesammelten KEYs den fehlende kleinste Zahl ermitteln.

z.B. es werden folgende KEYs mit Zahlen aus der Map-Datei geholt und aufgelistet
MyDeviceName1
MyDeviceName2
MyDeviceName3
MyDeviceName5
MyDeviceName7

nun, das Device mit der nur 4 und mit der Nummer 6 fehlen in der liste.
Ich aber möchte, das mit die Zahl 4 zurückgegeben wird.

Hier mein Ansatz zum auflistet der bestimmten Keys aus der Map-Datei


B4X:
Sub QueryMyDeviceName()
    
Dim myDeviceN_trennen() As String     
    For i = 0 To GeneralSettings.SettingsMap.Size-1
        
        For Each myDeviceN As String In GeneralSettings.SettingsMap.Keys
            myDeviceN_trennen = Regex.Split("\|",myDeviceN)
            If     myDeviceN = "MyDeviceName|" & (i+1)Then
                Log(myDeviceN_trennen(0) & " " & myDeviceN_trennen(1))   
                myDeviceList.Add(GeneralSettings.SettingsMap.Get(myDeviceN))   
            End If   
        Next
    Next
End Sub

Die Daten sind in der Map-Datei wie flgt hinterlegt
SettingsMap.Put("MyDeviceName|1", txtMyDeviceName.Text)
SettingsMap.Put("MyDeviceName|2", txtMyDeviceName.Text)
SettingsMap.Put("MyDeviceName|3", txtMyDeviceName.Text)
SettingsMap.Put("MyDeviceName|5", txtMyDeviceName.Text)
SettingsMap.Put("MyDeviceName|7", txtMyDeviceName.Text)


Wer kann mir hierbei helfen?

VG
Sinan
 

thetahsk

Active Member
Licensed User
ich bin noch beim Frühstück, aber mein Hund meinte so etwas wie hier

B4X:
Dim data2 As Map = CreateMap(1: "K1", 2: "K2", 3: "K3",5:"K5", 7: "K7")
    'Dim data2 As Map = CreateMap(1: "K1", 2: "K2", 3: "K3",4: "K4", 5:"K5", 6: "K6", 7: "K7")
    For i=1 To data2.Size-1  'Achtung Index ab 1 wegen (i-1)
        If data2.GetKeyAt(i-1)-data2.GetKeyAt(i) <-1 Then
            Log("Found first big gap at Index: " & (i-1))
            Log("New Minimun Key is :" & (data2.GetKeyAt(i-1)+1))
            Exit
        End If
    Next
 

DonManfred

Expert
Licensed User
GetKeyAt ist nicht zu empfehlen. Siehe Maps-Colletion Tutorial!
 
Top