readline ist kürzer als 34 Stellen. Du liest dann "hinter" dem String irgendwas, das dort im Speicher steht.
Mit diesem String geht es nicht:
Code:
readline := '33020AMT1x000000000x000000000x001';
mit diesem geht es
Code:
readline := '33020AMT1x000000000x000000000x001x';
Du solltest dein
for umstellen auf:
Delphi-Quellcode:
i := 11;
while i <= 34 do
begin
if readline[i] in [#0, #32] then break;
ATLN:=ATLN+readline[I];
inc(i);
end;
Und um so was rauszufinden, schliess Deine Funktion in {$R+} {$R-} ein.