Jupp, natürlich ist es immer sinnvoll Zwischenergebnisse zwischenzuspeichern, wenn sie dann
mehrmals zigtausende Male wiederverwendet werden.
Zitat:
l_arr[i] := Ord(ltemp[i]) - Ord('0');
ginge auch Binär, anstatt mathematisch
l_arr[i] := Ord(ltemp[i] <> '0');
l_arr[i] := Ord(Odd(Ord(ltemp[i]))) // Ord('1') ist Ungerade, also True, und Ord(True) ist 1
(wenn wirklich nur 1 und 0, weil 'b' oder '3' auch ungerade sind)
Und es gäbe auch fertige Funktionen, um diesen Binär-String in eine Bit-Sequenz (Bit-/ByteArray) zu konvertieren, ähnlich dem HexToBin bzw. Office.Hex2Bin
Warum Array of Integer?
OK, vom Zugriff her am Schnellsten, aber auch 32 Mal mehr Speicher, als Inhalt.