Die Variable
VorZeile ist nicht
0 sondern
leer. Weil es keine Zeichenkette geben kann, die kleiner als die leere Zeichenkette ist, ergibt der erste Vergleich
If (A_LoopField < VorZeile) immer
falsch. Meine Funktion macht dann einfach weiter und aktualisiert den Inhalt von
VorZeile. Nur wenn tatsächlich eine Zeile gefunden wird, die kleiner ist als die Vorzeile, wird sofort
False zurückgegeben.
In Deinem Beispiel wird der Inhalt der Variablen
VorZeile nur dann aktualisiert, wenn tatsächlich eine kleinere Zeile gefunden wird. Weil das nicht möglich ist, bleibt sie leer, d.h. das Ergebnis ist immer "Ja ist sortiert".
Eine mögliche Alternative für Deinen Code wäre
Code: Select all
#NoEnv
Liste1 =
(Join`r`n
A1001 Auto Schwarz
A1002 Fahrrad Grün
A1003 LKW Weiss
)
;
Liste2 =
(Join`r`n
A1003 LKW Weiss
A1001 Auto Schwarz
A1002 Fahrrad Grün
)
;
VorZeile := ""
Sortiert := True
Loop, Parse, Liste1, `n, `r
{
If (A_LoopField < VorZeile) {
Sortiert := False
Break
}
VorZeile := A_LoopField
}
MsgBox, 0, Liste1, Ist sortiert = %Sortiert%
;
VorZeile := ""
Sortiert := True
Loop, Parse, Liste2, `n, `r
{
If (A_LoopField < VorZeile) {
Sortiert := False
Break
}
VorZeile := A_LoopField
}
MsgBox, 0, Liste1, Ist sortiert = %Sortiert%
;
ExitApp