Delphi-Quellcode:
while TheLine[x+1] in ['a'..'z','A'..'Z'] do
while TheLine[x+1] in ['0'..'9'] do
diese beiden Schleifen können dafür sorgen, daß x aus dem gültigen Bereich rausläuft
probier mal dieses (durch obrige Schleifen kann es passieren, daß genau der EINE austrittspunkt übersprungen wird)
while x < Length(TheLine) do
und es könnte nix schaden, wenn du in oben genannte Schleifen auch noch eine Length-Abfrage mit reinmachst.