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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 29.06.2010, 08:30   #1
NewMen
Пользователь
 
Регистрация: 17.01.2010
Сообщений: 40
По умолчанию Поиск файлов

На каком-то локальном диске находятся необходимые файлы....Написать программу,которая находит эти файлы по первым 5-и символам имени файла.(с такими именами 00001...00030) и вывести на экран True или False....... Помогите,от этого зависит оценка на экзамене....
NewMen вне форума Ответить с цитированием
Старый 29.06.2010, 08:48   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Могу предложить :http://www.programmersforum.ru/showt...ighlight=finda
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 29.06.2010, 12:27   #3
NewMen
Пользователь
 
Регистрация: 17.01.2010
Сообщений: 40
По умолчанию

Спасибо, но мне нужно конкретно! На сетевых дисках Множество файлав и их нужно найти.....(написать прогу)
NewMen вне форума Ответить с цитированием
Старый 29.06.2010, 13:33   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Ну может тебе проще обратится к Фрилансерам, и те сделают качественно и быстро за деньги.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 29.06.2010, 14:22   #5
NewMen
Пользователь
 
Регистрация: 17.01.2010
Сообщений: 40
По умолчанию

У меня с финансами проблема....Кто нить, Бесплатно сможет?

Последний раз редактировалось NewMen; 29.06.2010 в 20:08.
NewMen вне форума Ответить с цитированием
Старый 01.07.2010, 05:42   #6
zotox
Форумчанин
 
Регистрация: 09.09.2008
Сообщений: 395
По умолчанию

Цитата:
Сообщение от NewMen Посмотреть сообщение
На каком-то локальном диске находятся необходимые файлы....Написать программу,которая находит эти файлы по первым 5-и символам имени файла.(с такими именами 00001...00030) и вывести на экран True или False....... Помогите,от этого зависит оценка на экзамене....
Код (под графический интерфейс):
Код:
function findplease(s: string): boolean;
var
 sr: TSearchRec;
 i: integer;
begin
 //Для того, чтобы не было проблем в работе
 if s[length(s)]<>'\' then s[length(s)+1]:='\';

 //Если в директории что-то будет существовать - производим поиск
 //Замечу что в директории всегда будет что-то находится если она существует
 //(я про символы "." и "..")
 if FindFirst(s+'*.*', faAnyFile, sr)=0 then
  begin
    repeat
      //sr.name -> имя файла
      if ((sr.Name='.') or (sr.Name='..')) then
       begin
         Continue;//Нашли символ "." или ".."? -> пробиваем следующие файлы/папки
       end;

      //Нашли директорию? -> Вызываем findplease(s+sr.name+'\');
      if (sr.Attr and faDirectory)<>0 then
       begin
         findplease(s+sr.name+'\');//рекурсия :)
         Continue;
       end
      else
       begin
         //Нашли файл? -> Проверяем соотв. ли он требованиям
         for i:=1 to 30 do
          begin

            if ((i>0) and (i<10)) then
             begin
               if copy(sr.Name, 1, 5)='0000'+inttostr(i) then
                begin
                  form1.memo2.lines.add(s+sr.Name);
                end;
             end;

            if ((i>9) and (i<31)) then
             begin
               if copy(sr.Name, 1, 5)='000'+inttostr(i) then
                begin
                  //Вид: D:\dir\00020.txt
                  form1.memo2.lines.add(s+sr.Name);
                end;
             end;

          end;
       end;

      //FindNext(sr) -> пробивка следующего файла
      //(в структуру sr будет возвращенна информация о файле)
    until FindNext(sr)<>0;
  end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
 findplease('D:\');
end;
Код:
и вывести на экран True или False
Если вы про нашли мы ли все файлы вида 00001... - 00030...
То заводите глобальную int переменную и ставьте вместо form1.memo2.lines.add -> inc (т.е. увел. глоб. переменную)
Ну и в конце, после if FindFirst(s+'*.*', faAnyFile, sr)=0 then
ставим проверу соотв. ли глобальная переменная своему значению (т.е. 30 в нашем случае), и если не соответствует -> то возвращаем false
zotox вне форума Ответить с цитированием
Старый 03.07.2010, 20:35   #7
NewMen
Пользователь
 
Регистрация: 17.01.2010
Сообщений: 40
По умолчанию

Напишите Пожалуйста на Pascal!!!!!! ОЧ ПрошУ!
NewMen вне форума Ответить с цитированием
Старый 03.07.2010, 21:30   #8
ZaRDaK
Форумчанин
 
Регистрация: 01.09.2009
Сообщений: 197
По умолчанию

Цитата:
Сообщение от NewMen Посмотреть сообщение
Напишите Пожалуйста на Pascal!!!!!! ОЧ ПрошУ!
Это надо было написать в первом посте, ага.
ZaRDaK вне форума Ответить с цитированием
Старый 05.07.2010, 09:18   #9
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
ОЧ ПрошУ!
Что что написано выше подойдет и для паскале с некоторыми поправками.
form1.memo2.lines.add(s+sr.Name); заменить на Writeln(s+sr.Name);

procedure TForm1.Button1Click(Sender: TObject); - убрать вообще и после последнего end поставить точку.
Не забыть в начале написать uses crt,dos;

inttostr можно описать как:
Код:
function inttostr(i:integer):String;
var s:string;
begin
 str(i,s);
 inttostr:=s;
end;
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Поиск файлов _GT_ C++ Builder 18 14.05.2010 19:56
Поиск файлов Romms Общие вопросы Delphi 3 27.09.2009 00:40
С++. Поиск файлов profi Помощь студентам 2 16.06.2009 16:04
Поиск файлов hacknet Общие вопросы Delphi 23 24.11.2008 17:54
Поиск файлов LeoN Общие вопросы Delphi 5 25.11.2007 22:54