Показать сообщение отдельно
  #2  
Старый 07.03.2012, 22:30
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,096
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Ну, идея в том, что тебе надо просто перебирать последний символ. Если только буквы, то это довольно просто:

В общем, как то так:
Код:
function GetNextValue(var AValue : String) : Boolean;

  procedure IncValue(var AValue : String; AIndex : Integer);
  var
    Ch : Char;
  begin
    If (AIndex < 1) Or (AIndex > Length(AValue)) Then 
     Raise Exception.Create('Index out of bounds');

    Ch := AValue[AIndex];
    If Ch <> 'z' Then AValue[AIndex] := Chr(Ord(Ch) + 1) Else
      Begin
        AValue[AIndex] := 'a';
        If AIndex = 1 
          Then AValue := 'a' + AValue 
          Else IncValue(AValue,AIndex-1);
      End;
  end;

begin
  Result := True;
  If AValue = '' Then AValue := 'a' Else
    If AValue = 'zzzzzzzz' Then Result := False Else
        IncValue(AValue,Length(AValue);
end;

Код не проверял. Просто идея.
Ответить с цитированием