@Tobias: Ich glaub bei deinem Morgan fehlt noch ein wichtiges NOT.
Ach ja, kann es sein, daß daß du eigentlich ein < meinst und nicht <> ?
Was genau soll denn geprüft werden?
Versuch deine Bedingungen mal als Satz zu definieren.
Erstmal alle drei Dinge einzeln und versuch es dann in einem Satz zusammenzusügen.
Wiederhole "kat_art" so lange, wie ... ist.
oder
Wiederhole "kat_art" so lange, wie ... nicht ist.
oder
Wiederhole ... so lange bis ... ist.
...
Vorallem hattest du etwas wichtges vergessen zu erwähnen, also in diner Fehlerbeschreibung.
Wie du es verknüpft haben wolltest.
while (i_arr_global_Ausgabe_Kat_Art_Schleifenwert < Length(i_arr_global_Ausgabe_Kat_Art)) ...
.
oder
while (i_arr_global_Ausgabe_Kat_Art_Schleifenwert <= High(i_arr_global_Ausgabe_Kat_Art)) ...
.
Denn wenn mal, durch einen "Fehler" i_arr_global_Ausgabe_Kat_Art_Schleifenwert größer ist, dann würde dir die Auswirkung bestimmt nicht gefallen.