Und unter Verwendung von regex wird daraus dann ungefähr so etwas:
Delphi-Quellcode:
PROCEDURE Checkfile(const fn:string);
var
rgx: TRegexpr;
newnumber,oldnumber: integer;
f: textfile;
s: string;
begin
assign(f,fn); reset(f);
rgx:=TRegexpr.Create;
rgx.Expression:='^O(\d{1,5})([+-]|$)';
oldnumber:=0;
while not eof(f) do
begin readln(f,s);
if rgx.exec(s)
then begin
newnumber := StrToInt(rgx.Match[1]);
if newnumber <> oldnumber+1
then Showmessage ('Out of sequence: '+rgx.Match[1]);
oldnumber := newnumber;
end;
end;
rgx.free;
end;