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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 25.04.2012, 21:11   #1
KonaeJer
 
Регистрация: 25.04.2012
Сообщений: 3
По умолчанию Поиск файла на диске. Паскаль

Задание: Найти на диске файл с заданным именем. Имя файла вводить с клавиатуры.
Кто может помочь?
KonaeJer вне форума Ответить с цитированием
Старый 26.04.2012, 16:16   #2
KonaeJer
 
Регистрация: 25.04.2012
Сообщений: 3
По умолчанию

Накидал тут пример:
Код:
Program Search_file:
var A: text;
    B: string;
begin
write('Введите имя файла: ');
readln(B);
assign(A,B);
GetDir(0,B);
writeln('Файл находится в директории: ',B);
readln;
end.
Но он ищет только этот файл в той папке, где находится компилятор. То есть директория в любом случае получается одна и та... А мне нужно искать на всем диске( или разделе диска С:\, что еще лучше )
Никто не может почочь? В паскале очень плох.
Буду очень благодарен.

Последний раз редактировалось KonaeJer; 26.04.2012 в 17:23.
KonaeJer вне форума Ответить с цитированием
Старый 26.04.2012, 18:36   #3
eoln
Старожил
 
Аватар для eoln
 
Регистрация: 26.04.2008
Сообщений: 2,645
По умолчанию

F1 в помощь. Потом рекурсию надо будет построить. Примеры на форуме есть. Правда они на Delphi в основном, но там разницы нет (это я про алгоритм)
Изображения
Тип файла: jpg 000.jpg (74.5 Кб, 139 просмотров)
eoln вне форума Ответить с цитированием
Старый 26.04.2012, 18:59   #4
KonaeJer
 
Регистрация: 25.04.2012
Сообщений: 3
По умолчанию

Не могли бы вы набросать пример программы?
KonaeJer вне форума Ответить с цитированием
Старый 26.04.2012, 21:38   #5
eoln
Старожил
 
Аватар для eoln
 
Регистрация: 26.04.2008
Сообщений: 2,645
По умолчанию

У меня модуля WinDos нет, поэтому проверить не могу. Вот пример рекурсивного поиска с Dos. Есть ограничения: вылетает при пути поиска длинной более 79 символов (уходит в бесконечную рекурсию ) и прочии DOS-сопутствующие обстоятельства
Код:
uses Dos;
procedure Find(s: string);
var
  DirInfo: SearchRec;
begin
  FindFirst(s+'turbo.exe', ReadOnly+Hidden+SysFile+Archive, DirInfo);
  if DosError = 0 then writeln('File find in ', s);

  FindFirst(s+'*', Directory, DirInfo);
  while DosError = 0 do
  begin
    if (DirInfo.Name <> '.') and (DirInfo.Name <> '..') then
      Find(s+DirInfo.Name+'\');
    FindNext(DirInfo);
  end;
end;

begin
  Find('c:\tp\');
end.
Ввод с клавиатуры самостоятельно.
eoln вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как создать поиск на диске? Aviko Помощь студентам 2 28.08.2011 16:24
Поиск одинаковых файлов на диске MeTeOpA Общие вопросы Delphi 26 07.03.2011 13:28
создание файла(поиск,удаление)ПАСКАЛЬ UnknownVirus Помощь студентам 2 23.01.2010 13:30
Поиск файлов на диске C# Лубышев Помощь студентам 2 23.09.2008 11:18