IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

 
 Ответить  Открыть новую тему 
> Поиск фаила на заданном диске...
сообщение
Сообщение #1


Гость






В Тр7.0 есть процедура(или функция) поиска файла в _ЗАДАННОМ_ каталоге. А как быть, если заранее не известно в каком каталоге искать этот файл.
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Бывалый
***

Группа: Пользователи
Сообщений: 201

Репутация: -  0  +


Меня тоже такой вопрос давно мучает.Мож кто поможет.А???
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Adminь
****

Группа: Пользователи
Сообщений: 803
Пол: Мужской
Реальное имя: Евгений

Репутация: -  5  +


Чё то я не понял вопроса...
Можно поподробнее?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Бывалый
***

Группа: Пользователи
Сообщений: 201

Репутация: -  0  +


Вопрос такой.Пусть мы ищем какие-то файлы на диске
C:,но нам не известно какие на нем находятся папки.Мы не знаем их названия.В паскале нет стандартных процедур нахождения имен папок на каком-либо диске.Там есть только нахождения файлов в заданном каталоге.Как только Паскалевскими средствами(без помощи ассемблера,так как я в нем вообще практически не шарю) находить файлы на всем диске(в различных папках,имен которых ты не знаешь).Вот и весь собственно вопрос во всех подробностях(ну или почти что во всех).
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Гость






См. алгоритмы обхода дерева.
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Adminь
****

Группа: Пользователи
Сообщений: 803
Пол: Мужской
Реальное имя: Евгений

Репутация: -  5  +


Чё то я не понял, а какже FindFirst и FindNext?
Они как файлы так и папки выдают...

Кстати в TurboVision есть очень интересный пример на эту тему...
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


Гость






FindFirst и FindNext функции(или процедуры-точно не помню...), которые позволяют искать файлы в ЗАДАННОМ каталоге, т.е. им нужно передать обязательный параметр типа PathStr(строка-путь), содержащий место поиска... Т.е. если нам нужно найти файл где-то на C: (например, "c:linuxetc"), мы задаем параметр "C:", эта процедура будет искать только в корне, т.е. в "c:linuxetc" ничего не найдет, если даже там лежит нужный нам файл....
 К началу страницы 
+ Ответить 
сообщение
Сообщение #8


Бывалый
***

Группа: Пользователи
Сообщений: 201

Репутация: -  0  +


А я про это и говорю!!!Или хотя бы где найти про это скажите!!!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #9


Гость






To admin: Что насчет интересного примера в TurboVision?
 К началу страницы 
+ Ответить 
сообщение
Сообщение #10


Гость






To Serg28: Если ты про DOSShell и команду "cd", то у меня ничего не вышло, т.к. все равно (в общем случае) заранее не знаю какие директории на  диске...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #11


Adminь
****

Группа: Пользователи
Сообщений: 803
Пол: Мужской
Реальное имя: Евгений

Репутация: -  5  +


Цитата
To admin: Что насчет интересного примера в TurboVision?

Файл OUTDIR.PAS
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #12


Бывалый
***

Группа: Пользователи
Сообщений: 156
Пол: Мужской

Репутация: -  0  +


Для дельфи это будет выглядеть так:

Procedure ScanDir(Dir:string);
 var SearchRec:TSearchRec;
begin
 if Dir<>'' then if Dir[length(Dir)]<>'' then Dir:=Dir+'';
 if FindFirst(Dir+'*.*', faAnyFile, SearchRec)=0 then
   repeat
     if (SearchRec.name='.') or (SearchRec.name='..') then continue;
     if (SearchRec.Attr and faDirectory)<>0 then
       ScanDir(Dir+SearchRec.name)  //we found Directory: "Dir+SearchRec.name"
     else
       Showmessage(Dir+SearchRec.name); //we found File: "Dir+SearchRec.name"
   until FindNext(SearchRec)<>0;
 FindClose(SearchRec);
end;


procedure TForm1.Button1Click(Sender: TObject);
begin
 ScanDir('c:');
end;


Для паскаля изменения будут незначительные


--------------------
With the best regards Vit

Все всегда уезжают навсегда. Вернуться невозможно-вместо нас всегда возвращается кто-то другой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #13


Гость






To MJ: Где б его еще взять!
 К началу страницы 
+ Ответить 
сообщение
Сообщение #14


Гость






Что, все умерли?
 К началу страницы 
+ Ответить 
сообщение
Сообщение #15


Бывалый
***

Группа: Пользователи
Сообщений: 282

Репутация: -  0  +


твоя задача решается с использованием рекурсии
если сильно надо, то я поищу и скину её сюда
напиши если надо
а то тебе там на дельфийце что-то давали
а на обычном пасе почти одно и то же
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #16


Бывалый
***

Группа: Пользователи
Сообщений: 201

Репутация: -  0  +


В уроках на pascal.dax.ru есть пример поиска файла любого через рекурсию в заданном месте(например на диске C:) ну уж чтоб на всех дисках искалось я думаю не сложно сделать.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #17


Гость






Пошли - не помешает. Мона на мыло...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #18


Бывалый
***

Группа: Пользователи
Сообщений: 201

Репутация: -  0  +


ЧО послать то не пойму!!!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #19


Пионер
**

Группа: Пользователи
Сообщений: 62
Пол: Мужской

Репутация: -  1  +


сто лет на форум не заглядывал, а тут такая дискуссия ;)
посмотрите на моём сайте, в исходниках, аналог команды DIR она сканирует все вложенные каталоги, начиная с текущего, или какой укажешь.
Если переделать, то можно и файл искать, и по имени, и по расширению, и по маске, кому как захочется.  :smile.gif

http://www.pascal.hop.ru/sourses.htm
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #20


Гость






Вот спасибо доброму человеку!
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 20.04.2024 5:25
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name