Ich kenne mich mit QB64 nicht aus und die Dokumentation ist spärlich, daher habe ich Probleme.Falscher Array-Typ, der an ein Unterprogramm übergeben wird
TYPE character
FName AS STRING * 12
LName AS STRING * 12
ID_Num AS INTEGER
Year AS STRING * 2
GPA AS DOUBLE
END TYPE
DIM LENGTH AS INTEGER
LENGTH = 11
REDIM chars(0) AS character
CLS
n$ = "names1.txt"
OPEN n$ FOR INPUT AS #1
k = -1
WHILE (NOT (EOF(1)))
k = k + 1
REDIM _PRESERVE chars(k) AS character
INPUT #1, chars(k).FName, chars(k).LName, chars(k).ID_Num, chars(k).Year,
chars(k).GPA
WEND
CLOSE #1
CALL sortArray(chars(), LENGTH)
SUB sortArray (score() AS INTEGER, SIZE AS INTEGER)
DIM x AS INTEGER
DIM y AS INTEGER
DIM COMPS AS INTEGER
x = 0
y = 0
COMPS = SIZE - 1
WHILE y < COMPS
x = 0
WHILE x < COMPS
IF score(x) > score(x + 1) THEN
CALL swap2(score(), x)
END IF
x = x + 1
WEND
y = y + 1
WEND
END SUB
SUB swap2 (score() AS INTEGER, x AS INTEGER)
DIM temp AS INTEGER
temp = score(x + 1)
score(x + 1) = score(x)
score(x) = temp
END SUB
Ich erhalte eine Fehlermeldung - „Falscher Array-Typ zu Unter bestanden“ auf der folgende Zeile:
CALL sortArray(chars(), LENGTH)
ich, dass ich davon aus, da ich oben verwendete REDIM, dass die Unter nicht Verarbeitung, aber ich bin mir nicht sicher, wie ich das beheben soll. Letztendlich versuche ich, eine Datei in ein Array einzulesen, dieses Array zu sortieren und dann an den Benutzer auszugeben. Momentan bin ich fest, wie man das Array tatsächlich sortiert.
Jede Hilfe wird geschätzt. Vielen Dank!
Um welche Art von Partitur möchten Sie sortieren? Es gibt keine Score-Eigenschaft im Typ "Charakter". Möchten Sie nach der GPA-Eigenschaft sortieren? –