YVitaliy, точно я забыл про изменение переменной i.
Сделал так. Теперь, когда номер ' Г"последний" ' происходит выход за границы стриглиста (List index of bounds - как-то так).
Код:
procedure TForm1.Button2Click(Sender: TObject);
var StrLst:TStringList;
s,s1:AnsiString; i:byte;
begin
if not FileExists('1.txt') then
MessageDlg('File not find',mtError,[mbOk],0)
else begin
StrLst:=TStringlist.Create;
StrLst.LoadFromFile('1.txt');
s1:=Label1.Caption;
delete(s1,1,14);
s:=('');
i:=0;
while i<StrLst.Count-1 do
if StrLst[i]='Г'+s1 then
repeat
s:=s+StrLst[i+1];
s:=s+#13#10;
inc(i);
until((StrLst[i+1]='Г'+IntToStr(StrToInt(s1)+1)) or (i=StrLst.Count))
else inc(i);
ShowMessage(s);
end;
end;