-> Hier kostenlos registrieren
Hallo liebe Gemeinde,
eure Beiträge haben mir schon einige Male weiter geholfen, diesmal hab ich allerdings keine Lösung bis dato gefunden.
Ich möchte von einem KP900 Comfort Panel mit VBS auf eine CSV-Datei mit archivierten Werten zu greifen (bis zu 3000 Werte pro Spalte). Anschließend möchte ich die 5 höchsten Werte aus einer Spalte (Typ INT) in ein Array speichern. Doppelt vorkommende Werte sollen nicht mit in das Array aufgenommen werden.
Ein Beispiel: in der CSV steht untereinander: 2, 6, 3, 6, 7, 2, 10, 8 , 1
das Array soll mit dem größten beginnend so aussehen: 10, 8, 7, 6, 3
Mein aktuelles Skript sortiert bereits die Werte, aber meine Versuche die Doppelten zu ignorieren und nicht mit ins Array zu schreiben, sind bis jetzt gescheitert.
Mein Code sieht wie folgt aus:
mode=1
path="\Storage Card USB\15minArchive.csv"
delimiter=","
Set fo=CreateObject("FileCtl.File")
fo.open path, mode
data=fo.lineinputstring 'Kopfzeile überspringen
While fo.EOF = False
fo.close
Set fo=Nothing
eure Beiträge haben mir schon einige Male weiter geholfen, diesmal hab ich allerdings keine Lösung bis dato gefunden.
Ich möchte von einem KP900 Comfort Panel mit VBS auf eine CSV-Datei mit archivierten Werten zu greifen (bis zu 3000 Werte pro Spalte). Anschließend möchte ich die 5 höchsten Werte aus einer Spalte (Typ INT) in ein Array speichern. Doppelt vorkommende Werte sollen nicht mit in das Array aufgenommen werden.
Ein Beispiel: in der CSV steht untereinander: 2, 6, 3, 6, 7, 2, 10, 8 , 1
das Array soll mit dem größten beginnend so aussehen: 10, 8, 7, 6, 3
Mein aktuelles Skript sortiert bereits die Werte, aber meine Versuche die Doppelten zu ignorieren und nicht mit ins Array zu schreiben, sind bis jetzt gescheitert.
Mein Code sieht wie folgt aus:
mode=1
path="\Storage Card USB\15minArchive.csv"
delimiter=","
Set fo=CreateObject("FileCtl.File")
fo.open path, mode
data=fo.lineinputstring 'Kopfzeile überspringen
While fo.EOF = False
data=fo.lineinputstring
splitdata=split(data, delimiter)
i=0
If array(4) < splitdata(2) then
splitdata=split(data, delimiter)
i=0
If array(4) < splitdata(2) then
array(4)=splitdata(2)
For i=0 to 4
For j=i+1 to 4
If array(i)<array(j) then
temp=array(i)
array(i)=array(j)
array(j)=temp
End If
temp=array(i)
array(i)=array(j)
array(j)=temp
End If
next
next
end if
Wend
fo.close
Set fo=Nothing