Ich bin nicht Dhan, erklären kann ich es dir aber trotzdem.
Eine häufig verwendete Lösung wäre das du den Modulo Operator nutzt um die Zahl auf ihre Stellen zu zerlegen.
Bei der Zahl 1234 z.B.:
1000er Stelle:
1234 / 1000 = 1
100er Stelle:
1234 / 100 = 12
12 MOD 10 = 2
10er Stelle:
1234 MOD 100 = 34
34 / 10 = 3
1er Stelle:
1234 MOD 10 = 4
Schon hast du eine wesentlich simplere Abfragemenge. Bei deiner Lösung bräuchte man 9999 Forks um alle Möglichkeiten abzudecken. Hier lediglich 40, heisst 10 pro Stelle.
Mit dem Pointer Picture Patch, könnte man die benötigt Zahl sogar auf quasi 0 reduzieren, da man hier sogar direkt die Dateinamen konstruieren kann, was es nochmal einfacher macht. Aber das wäre nochmal eine andere Sache.
Ein weiterer Fehler deines Skriptes wäre das es die Anzeige per parallelen Prozess ständig aktualisiert. Das kostet unnötig Rechenzeit, da du ja genau weisst wann die Werte sich verändert. Wenn man das Update für die Anzeige per "Call" aufruft, spart man sich einiges an Rechenleistung.