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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 02.10.2010, 21:49   #1
Dj_SheLL
Форумчанин
 
Аватар для Dj_SheLL
 
Регистрация: 14.10.2009
Сообщений: 128
Печаль Поиск по маске "название_файла"

Язык DELPHI
Моя цель такова:
Имеются файлы типа
01.2009.ini
....
11.2009.ini
12.2009.ini
01.2010.ini
09.2010.ini
10.2010.ini

т.е. название файла строится так месяц.год.ini
Я хочу сделать чтобы по клику кнопки,(получить текущий месяц не проблема),все файла имя которых меньше текущего месяца и года (т.е. будем говорить какая-нибудь переменная типа string значения 10.2010) удалялись.
Знаю,что нужно делать через цикл,но как совершенно не представляю.
Подскажите пожалуйста какие-нибудь идеи или простые примеры.

Самая трудность сравнивать имена файлов

Последний раз редактировалось Dj_SheLL; 02.10.2010 в 22:01. Причина: Забыл указать язык:)
Dj_SheLL вне форума Ответить с цитированием
Старый 02.10.2010, 22:14   #2
Mad_Cat
Made In USSR!
Старожил
 
Аватар для Mad_Cat
 
Регистрация: 01.09.2010
Сообщений: 3,657
По умолчанию

шаг 1 ищем файлы ! findfirst findnext в помощь
шаг 2 проверяем их месяц и год! pos copy delete trystrtoint в помощь
шаг 3 если меньше удаляем! Deletefile в помощь
и снова шаг 1 пока не просмотрим все файлы
все остальное в поиске по форуму по именам процедур и функций
"...В жизни я встречал друзей и врагов.В жизни много всего перевидал.Солнце тело мое жгло, ветер волосы трепал,но я смысла жизни так и не узнал..."
(c) Юрий Клинских aka "Хой"
Mad_Cat вне форума Ответить с цитированием
Старый 02.10.2010, 23:14   #3
Dj_SheLL
Форумчанин
 
Аватар для Dj_SheLL
 
Регистрация: 14.10.2009
Сообщений: 128
По умолчанию

Вот чё получилось
Код:
procedure TForm1.Button1Click(Sender: TObject);
var SR: TSearchRec;
    FindRes: Integer;
    Source,a,b:string;
begin
Source:=datetostr(SysUtils.Date);
Delete(Source,1,3);
a:=Source;
b:=Source;
Delete(a,1,3);//год
Delete(b,3,5);//месяц
FindRes:=FindFirst('*.ini',faAnyFile,SR);
  While FindRes=0 do
  begin
      if ((strtoint(Copy(SR.Name,1,2))>=strtoint(b)) and (strtoint(Copy(SR.Name,4,4))>=strtoint(a))) or ((strtoint(Copy(SR.Name,1,2))>=strtoint(b)) and (strtoint(Copy(SR.Name,4,4))<>strtoint(a))) then
         begin
            FindRes:=FindNext(SR);
            Continue;
         end;
      DeleteFile(SR.Name);
      FindRes:=FindNext(SR);
  end;
FindClose(SR);
end;

Последний раз редактировалось Dj_SheLL; 03.10.2010 в 11:40. Причина: Условие более коректно
Dj_SheLL вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как обойти "преобразование типа из "string" в "float" невозможно" lexluter1988 Помощь студентам 1 07.08.2010 12:23
при вводе на листе "магазин"- код товара появлялось "описание" товара из "склада" с "продажной ценой" aleksei78 Microsoft Office Excel 13 25.08.2009 12:04
Поиск по "маске" Родион БД в Delphi 2 16.06.2008 07:33
"Транспортная задача", "Поиск решения" Perroman Microsoft Office Excel 3 12.12.2007 17:12