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

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

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

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


Гость






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


Бывалый
***

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

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


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


Adminь
****

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

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


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


Бывалый
***

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

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


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


Гость






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


Adminь
****

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

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


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

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


Гость






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


Бывалый
***

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

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


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


Гость






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


Гость






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


Adminь
****

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

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


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

Файл OUTDIR.PAS
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Vit
сообщение 3.01.2003 20:32
Сообщение #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 
 К началу страницы 
+ Ответить 
Noname
сообщение 4.01.2003 11:56
Сообщение #13


Гость






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


Гость






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


Бывалый
***

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

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


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


Бывалый
***

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

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


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


Гость






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


Бывалый
***

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

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


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


Пионер
**

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

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


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

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


Гость






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

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

 



- Текстовая версия 20.05.2024 13:48
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"