Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Поисх файлов [D6, Win95/98, WinXP]


Vampire ©   (2003-02-04 09:38:00) 

Уважаемые программисты...
прошу мне помочь...
Стоит следующая задача...
Организовать поисх файлов на диске с заданым расширением...
и поместить путь к этим файлам где нибудь на форме или еще лучше
присвоить к переменным.
Далее стоит задача отправить эти файлы на smtp-протоколу на мыло...
ну это все просто...Правда ли что стандартный smtp Delphi 6 под
WinXP не работает или все это байки?
С уважением Алексей.


Palladin   (2003-02-05 00:49:00) [1]

маленькая корректировка "тирады" (или "тиррады") :)
"...маска не только на именафайлов распространяется, но и на именаподкаталогов..."


Вовчик   (2003-02-05 00:06:00) [2]

Palladin :))


Palladin   (2003-02-04 23:56:00) [3]

2 Vampire
в FAQ находится пример, а не точно тебе нужная процедура.
опираясь на этот пример, ты можешь создать свою, нужную тебе логику процедуры. Нечего цеплятся к тому, что есть "пример".

А стоило затрагивать тему про маску именно потому, что бы обратили внимание. Но внимание видимо не обратили, и не заметили, что маска не только на файлы распространяется, но и на подкаталоги, вот и недовольны.


Vampire   (2003-02-04 23:27:00) [4]

Anatoly Podgoretsky ©
В том и дело, зачем стоило вообще затрагивать в этом FAQ тему про маску и что по умолчанию она *.* ??????


Anatoly Podgoretsky   (2003-02-04 23:23:00) [5]

Еше раз пойми, если ты задал маску *.bat, то ты не за что не водйешь в другие папки если у них не будет расширения *.bat
Ошибка не в программе а в логике и ожиданиях, просто твои ожидания не соответстуют логике.


Vampire   (2003-02-04 23:15:00) [6]

Юрий Зотов, это ответ не Вам, а Anatoly Podgoretsky ©


Юрий Зотов   (2003-02-04 23:14:00) [7]

> Вы же его сами писали
Не понял. Пример из FAQ? Я его не писал. И даже не видел.


Vampire   (2003-02-04 23:08:00) [8]

Юрий Зотов, дело не в 50 рублей и не в 5-ти минутах :)
Программа давно работает...и дело даже не в этом...
дело в примере из FAQ ...
В пояснении к нему указано что маску можно менять
и написано что по умолчанию она равна *.*
т.е. if Mask = "" then Mask := "*.*";
логично, но если укзаваешь в : ScanDir("c:","",ListBox1.Items);

за место "" другую маску поиск происходит только по пути "с:\"
не уходя в глубь каталогов...
А зачем исходный текст? Вы же его самиписали :)


Юрий Зотов   (2003-02-04 22:52:00) [9]

О, господи... Да что там делать-то?

Вот код. Набросал "с лету" и по памяти, поэтому возможны мелкие ошибки.

procedure FindAllFiles(List: TStrings; Dir, Mask: string);

procedure ScanDir(Dir: string);
var
SR: TSearchRec;
begin
Dir := IncludeTrailingBackSlash(Dir);
if FindFirst(Dir + "*.*", faAnyFile - faVolumeID, SR) = 0 then
try
repeat
if (SR.Name <> ".") and (SR.Name <> "..") then
if SR.Attr and faDirectory <> 0 then
ScanDir(Dir + SR.Name)
else
if MatchesMask(SR.Name, Mask) then
List.Add(Dir + SR.Name)
until FindNext(SR) <> 0
finally
FindClose(SR)
end
end;

begin
if (List = nil) or not DirectoryExists(Dir) or (Mask = "") then
raise Exception.Create("Invalid parameter");
List.Clear;
ScanDir(Dir)
end;

P.S.
Потратил 5 минут. За 50 рублей - всю жизнь писал бы такие игрушки.


Anatoly Podgoretsky   (2003-02-04 22:47:00) [10]

А у тебя есть файлы или папки с таким расширением и должными аттрибутами. Наверняка нет.
Приведи свой код и тогда можно будет точно указать ошибку, но 100% она такая.


Vampire   (2003-02-04 22:21:00) [11]

->Anatoly Podgoretsky

Решил глянуть FAQ
Нашел Ваш пример, для поиска всех файлов, но там можно задавать маску...сколько не мудрился с маской он мне ничего не ищет, ищет только с "*.*" ... А вот к примеру "*.bat" пусто


MBo   (2003-02-04 21:03:00) [12]

>ведь всего 50р!!!!
Согласен за 40 написать! ;)


Vampire   (2003-02-04 20:53:00) [13]

->MBo
Вчера тут был..а тут проблемы с сервером...и обломался...
ДА просто попросили такую прогу написать, не знаю зачем согласился...ведь всего 50р!!!! Наверное из принципа...ну вот она и готова... А неделю назад написал прогу для одной фирмы - клиент-сервер и получил $30 вот такой я молодец )
Всем спасибо.


Anatoly Podgoretsky   (2003-02-04 20:24:00) [14]

Да


gsu   (2003-02-04 19:45:00) [15]

FindNext (-:|~


MBo   (2003-02-04 19:44:00) [16]

рекурсивно.
Пример в нашем FAQ


Vampire   (2003-02-04 19:35:00) [17]

-> MBo

Спасибо,Уважаемый...
Надеюсь справлюсь...про эту функцию я знал, но вот как там задать поисх по всем папкам....?....


MBo   (2003-02-04 10:01:00) [18]

FindFirst


Наверх

Титульная страница Поиск, карта сайта Написать письмо