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

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

Сотрировка страниц для печати [D7, Win95/98, WinME, NT4, Win2k, WinXP]


tol ©   (2007-01-10 17:11:00) 

Помогите найти действующий алгоритм, сидел несколько часов, уже голову сломал, но не нашел универсальный метод. Задача такая: Есть несколько файлов на печать. Нужно разделить их на секции следующим образом: в простейшем случае, две секции:

1->A1
2->B1
3->B2
4->A2

Тоже 2 секции, но для 12 файлов:

1->A1
2->A2
3->A3
4->B1
5->B2
6->B3
7->B4
8->B5
9->B6
10-A4
11->A5
12->A6

Если, например, 16 файлов и 4 секции:

1->A1
2->A2
3->B1
4->B2
5->C1
6->C2
7->D1
8->D2
9->D3
10->D4
11->C3
12->C4
13->B3
14->B4
15->A3
16->A4

На вход функции может подаваться порядковый номер файла, общее количество файлов  и количество нужных секций, на выходе – строка  вида "буква+цифра". Если не сложно, подскажите как реализовать это на Дельфи, пожалуйста.


tol   (2007-01-10 20:37:00) [1]

Спасибо! Прекрасное решение - простое и  универсальное!


MBo   (2007-01-10 18:13:00) [2]


procedure TForm1.Button4Click(Sender: TObject);
var
 NS, NF, i, j, MN: Integer;
 ch: Char;
begin
 NS := 4;
 NF := 16;
 MN := NF div NS;
 for i := 0 to NS -1 do begin
   ch := Chr(Ord('A') + i);
   for j := 1 to MN div 2 do
     Memo1.Lines.Add(ch + IntToStr(j));
 end;
 for i := NS -1 downto 0 do begin
   ch := Chr(Ord('A') + i);
   for j := MN div 2 + 1 to MN do
     Memo1.Lines.Add(ch + IntToStr(j));
 end;
end;


Наверх

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