Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

filename [D7]


lamer ©   (2008-04-01 16:48:00) 

здравствуйте.
нужно сделать следующее:
есть переменная в цикле, пусть это будет FLname:string;
нужно чтобы она принимала значения начиная с AAAA и заканчивая
ZZZZ . т.е.
тоесть первый "оборот" цикла
FLname= AAAAA
второй
FLname= AAAAB
26й
FLname= AAABA
27й
FLname= AAABB
...
и так до ZZZZZ

т.е. нужно чтобы переменная с каждым разом увеличивалась на 1 "единицу" в порядке Алфавитного возрастания, если можно так сказать.
подскажите пожалуйста можно ли какнибудь это реализовать?


clickmaker   (2008-04-02 14:47:00) [1]

выпендриться, что-ли... )

function GetNextFileName(const AName: string): string;
var
 len: integer;
begin
 len := Length(AName);
 if (len > 0) then
 begin
    Result := AName;
    if (Result[len] = 'Z') then
     Result := Result + 'A'
    else
     Result[len] := Chr(Ord(Result[len]) + 1);
 end else
   Result := 'A';
end;


icWasya   (2008-04-01 23:59:00) [2]

var
 i1,i2,i2,i4:char;
  FLname:string;

begin
 for i1:='A' to 'Z' do
 for i2:='A' to 'Z' do
 for i3:='A' to 'Z' do
 for i4:='A' to 'Z' do
 begin
   FLname=i1+i2+i3+i4;
 end;
end;


palva   (2008-04-01 21:06:00) [3]

Советую переходить на PERL. Вот такая программа:

map {print "$_\n"} ('AA'..'ZZ')

Напечатает вам строки от 'AA' до 'ZZ' по вашему правилу.


Плохиш   (2008-04-01 18:34:00) [4]


> Автор застрелится

хотелось бы надеяться.


Alien1769   (2008-04-01 17:29:00) [5]


> Использовать 26-ричную систему счисления

Автор застрелится ! :))


Anatoly Podgoretsky   (2008-04-01 17:27:00) [6]

А зачем? Циклы и так нормально работают с символами.


Семеныч   (2008-04-01 17:01:00) [7]

Использовать 26-ричную систему счисления, ее цифры обозначить буквами и при каждом проходе цикла просто прибавлять единицу.


MBo   (2008-04-01 17:00:00) [8]

http://algolist.manual.ru/maths/combinat/index.php

Для небольших длин проще рекурсивно генерировать.


lamer   (2008-04-01 16:56:00) [9]

а можно не большой пример хотябы:[ просто вобще не представляю как это сделать..


Andy BitOff   (2008-04-01 16:54:00) [10]

Таблицу символов в руки и вперед.


lamer   (2008-04-01 16:51:00) [11]

либо можно другой вариант:
1й оборот
FLname= А
2
FLname= B
25
FLname= Z
26 FLname= ZA
40+
FLname= ZZА

такое вариант даже предпочтительнее


Наверх

Титульная страница Поиск, карта сайта Написать письмо