; in der Variablen "zaehlertaxi" steht die Anzahl der Datensätze aus denen die Top 3 ermittelt werden soll
; in dem Arry "taxi_haltestelle(n)" jeweils ein Name der Haltestelle, dieser NAme kommt z.T. mehrfach vor
zaehlertaxi = 9
Dim taxi_haltestelle.s(zaehlertaxi)
taxi_haltestelle(0) = "Friedrichstraße" ;3
taxi_haltestelle(1) = "Hubertusweg" ;4
taxi_haltestelle(2) = "Obere Allee" ;2
taxi_haltestelle(3) = "Hubertusweg"
taxi_haltestelle(4) = "Sauerlandgasse"
taxi_haltestelle(5) = "Friedrichstraße"
taxi_haltestelle(6) = "Obere Allee"
taxi_haltestelle(7) = "Hubertusweg"
taxi_haltestelle(8) = "Friedrichstraße"
taxi_haltestelle(9) = "Hubertusweg"
;Struktur für Haltestellemname und Häufigkeit
Structure Haltestelle
Name.s
Anzahl.l
EndStructure
;Liste mit allen verschiedenen Haltestellen
NewList liste.Haltestelle()
For i = 0 To zaehlertaxi
ja = 1
ForEach liste()
If liste()\Name = taxi_haltestelle(i) ;Wenn Haltestelle schon in liste() ist, erhöhe die Anzahl
liste()\Anzahl + 1
ja = 0
Break
EndIf
Next
If ja ;Wenn Haltestellen nicht gefunden wurd, dann erstelle sie
AddElement(liste())
liste()\Name = taxi_haltestelle(i)
liste()\Anzahl = 1
EndIf
Next
;Sortiere die Liste (liste()) absteigend (1) nach der Häufigkeit (OffsetOf(Haltestelle\Anzahl))
SortStructuredList(liste(), 1, OffsetOf(Haltestelle\Anzahl), #PB_Sort_Long)
Debug "Es gibt " + Str(CountList(liste())) + " verschiedene Haltestellen."
;Ordne die Top 3 den passenden Variablen zu
Define top1s.s, top2s.s, top3s.s
If FirstElement(liste()) ;Pass auf, dass die Liste nicht leer ist...
top1s = liste()\Name
top1 = liste()\Anzahl
EndIf
If NextElement(liste()) ;...und auch das nächste...
top2s = liste()\Name
top2 = liste()\Anzahl
EndIf
If NextElement(liste()) ;...und übernächste Element existiert.
top3s = liste()\Name
top3 = liste()\Anzahl
EndIf
;Gib die Top 3 aus
MessageRequester("test", top1s + " " + Str(top1))
MessageRequester("test", top2s + " " + Str(top2))
MessageRequester("test", top3s + " " + Str(top3))
nutze Smileys und Absätze- und schweige nicht so schüchtern mit den Punkten vor dich
(Bitte... die Punkte sind anstrengend zu lesen, und du brauchst dich hier nicht vor dich hin Schämen...)
OpenNetworkConnection() hat geschrieben:Versucht eine Verbindung mit dem angegebenen Server aufzubauen. 'ServerName$' kann eine IP-Adresse oder ein voller Name sein (z.B.: "127.0.0.1" oder "ftp.home.net").
php-freak hat geschrieben:Ich hab die IP von google auch ned rausgefunden!
Habe nicht alles gelesen... Aber warum macht ihr das nicht mit SortArray() bzw. SortStructuredArray() und geht dann davon aus, dass je nach Sortierrichtung die drei ersten oder letzen Elemente die "Top 3" sind?
; PB4
zaehlertaxi = 10
Dim taxi_haltestelle.s(zaehlertaxi)
Dim topname.s(zaehlertaxi)
taxi_haltestelle(0) = "Friedrichstraße" ;3
taxi_haltestelle(1) = "Hubertusweg" ;4
taxi_haltestelle(2) = "Obere Allee" ;2
taxi_haltestelle(3) = "Hubertusweg"
taxi_haltestelle(4) = "Sauerlandgasse"
taxi_haltestelle(5) = "Friedrichstraße"
taxi_haltestelle(6) = "Obere Allee"
taxi_haltestelle(7) = "Hubertusweg"
taxi_haltestelle(8) = "Friedrichstraße"
taxi_haltestelle(9) = "Hubertusweg"
SortArray(taxi_haltestelle(), 1)
counter=1
i=0
Repeat
While taxi_haltestelle(i)=taxi_haltestelle(i+1)
counter+1
If i<zaehlertaxi
i+1
Else
Break
EndIf
Wend
If counter > 1
j+1
topname(j)=Str(counter) + " x " + taxi_haltestelle(i-1)
counter=1
EndIf
i+1
Until i=zaehlertaxi
For i=1 To j
Debug topname(i)
Next
__________________________________________
Weniger glauben - mehr wissen!
------------------------------------------------------
Proud beneficial owner of SpiderBasic, PureBasic 3.x, 4.x, 5.x and PureVisionXP
.... nein, ich bin noch auf 3.94..... hatte die 4 installiert aber durch meine mangelnde Programmierkunst hatte ich zu viele Fehler ........ wenn ich mal etwas mehr Zeit habe werde ich wohl mal umstellen und dann weiter sehen.....
Erstmal danke........ es hat super geklappt und ich komme endlich weiter.......