Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.09.2008, 14:05   #1
russian-stalker
Участник клубаДжуниор
 
Аватар для russian-stalker
 
Регистрация: 23.08.2008
Сообщений: 1,616
По умолчанию Сортировка файлов

У меня есть множество файлов 1.txt, 2.txt, 3.txt. и т.д. Некоторые удаляются. Как мне сделать на событие уничтожении формы, переименование их с большего к меньшему. Т.Е. уничтожился 4.txt, значит 5 переименовывается в 4, 6 в 5 и так далее
pushl $0x18E3DF6B
call ICQ
russian-stalker вне форума Ответить с цитированием
Старый 25.09.2008, 14:35   #2
Квэнди
Старожил
 
Аватар для Квэнди
 
Регистрация: 13.12.2006
Сообщений: 3,859
По умолчанию

только findfirst findnext создавать вектор названий файлов, и уже его сортировать, переименовывая файлы.
ICQ не для вопросов, а для предложений. Для вопросов используйте форум
IRC канал клуба программистов|Мои статьи
Квэнди вне форума Ответить с цитированием
Старый 25.09.2008, 15:02   #3
russian-stalker
Участник клубаДжуниор
 
Аватар для russian-stalker
 
Регистрация: 23.08.2008
Сообщений: 1,616
По умолчанию

А можете кодом подмастить?
pushl $0x18E3DF6B
call ICQ
russian-stalker вне форума Ответить с цитированием
Старый 25.09.2008, 20:37   #4
eoln
Старожил
 
Аватар для eoln
 
Регистрация: 26.04.2008
Сообщений: 2,645
По умолчанию

Код:
procedure TForm1.Button11Click(Sender: TObject);
var 
  mas: array of word;
  i, j, k: integer;
  SearchRec: TSearchRec;
  s: word;
begin
k := 1;
if FindFirst(getcurrentdir+'\*.txt', faAnyFile, SearchRec) = 0 then
repeat
  inc(k);
  if (SearchRec.Attr and faDirectory) <> faDirectory then
  SetLength(mas, k);//увеличение массива
  mas[k-1] := strtoint(copy(SearchRec.Name, 1, length(SearchRec.Name)-4));//сохраняем только имя (легче сортировать)
until FindNext(SearchRec) <> 0;
FindClose(SearchRec);
if length(mas) = 0 then exit;//если файлов нет - уходим
mas[0] := 0;//якобы существует файл 0.txt 
for i := 0 to k-1 do //сортировка
for j := i + 1 to k-1 do
if mas[j] < mas[i] then begin
   s := mas[i];
   mas[i] := mas[j];
   mas[j] := s
end;
for i:=0 to k-2 do
if mas[i+1] - mas [i] > 1 then begin //если есть разрыв последовательности
   RenameFile(getcurrentdir+'\'+inttostr(mas[i+1])+'.txt',
              getcurrentdir+'\'+inttostr(mas[i]+1)+'.txt');
   mas[i+1] := mas[i]+1;//устраняем разрыв
end;
end;
eoln вне форума Ответить с цитированием
Старый 25.09.2008, 22:52   #5
russian-stalker
Участник клубаДжуниор
 
Аватар для russian-stalker
 
Регистрация: 23.08.2008
Сообщений: 1,616
По умолчанию

Спасибо попробуем
pushl $0x18E3DF6B
call ICQ
russian-stalker вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Нужна помощь: выбор файлов исходя из имени файлов Antik163RUS Помощь студентам 4 19.06.2008 21:20
Печать pdf файлов из списка файлов в Excel АПС Microsoft Office Excel 5 15.04.2008 16:04
1. Сортировка Шелла по убыванию 2. Сортировка вставками по убыванию Arkuz Помощь студентам 1 25.09.2007 17:16
Сортировка omi БД в Delphi 2 23.02.2007 09:41