nr_pzn_bereinigt[i] := IntToStr(StrToInt(nr_pzn_bereinigt[i]));
geht, solange nur Ziffern vorkommen, kommt mal ein Buchstabe (oder besser einen Nichtziffer) geht's schief.
Delphi-Quellcode:
while Copy(nr_pzn_bereinigt[i],1,1) = '0' do begin
nr_pzn_bereinigt[i] := Copy(nr_pzn_bereinigt[i],2,Length(nr_pzn_bereinigt[i]));
end;
Beispiel zu Deinem Vorgehen:
i ist 1
00850046
1. Zeichen = '0'
0850046 bleibt dann übrig
i wird nun 2
zweites Zeichen ist nun 8, da das erste Zeichen entfernt wurde.
0850046 bleibt dann übrig
i wird nun 3
drittest Zeichen = 5
0850046 bleibt dann übrig
i wird nun 4
viertes Zeichen = 0
085046 bleibt dann übrig
i wird nun 5
fünftes Zeichen = 4
085046 bleibt dann übrig
i wird nun 6
fünftes Zeichen = 6
085046 bleibt dann übrig
Das ist eher so 'ner Art zufälliges Nullenentfernen, abhängig davon wieviele Nullen vorher dort waren und an welcher Position sie sich befinden.