Zwar kein Musterprogramm, aber am einfachsten geht es mit ILERPG.

%SCAN liefert die Position des Zeichens: %scan(';':Feld:Start)
Mittels "Start" kann das suchen ab der letzten Position +1 fortgesetzt werden.
Wenn kein Zeichen da ist, liefert die Funktion 0.

%SUBST liefert eine Teilkette: %subst(Feld:Start:Länge)

%dec wandelt eine Zahl aus einem Zeichenfeld um (ab V5R2 !)

Mit %checkr(' ':Satz) kannst du die gesamtlänge des zu untersuchenden Strings ermitteln.

Oder:
Nimm Excel, lass die Felder da automatisch trennen und schieb die Daten mittes Filetransfer (oder mit Uplaod/400 von meiner Homepage) auf die AS/400.