| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Центр помощи > Файлы и папки |
| Автор: svarogik 27.7.2006, 21:51 |
| Можно ли просканировать папку на наличие файлов с определенным расширением? (в моем случае *.bmp) и если присутствуют то выполнить какие то действия, и продолжить сканирование. |
| Автор: Alexeis 27.7.2006, 21:59 |
| http://forum.vingrad.ru/index.php?act=module&module=vingradfaq&target=main_panel&article=2507 Добавлено @ 21:59 http://forum.vingrad.ru/index.php?act=module&module=vingradfaq&target=main_panel&article=989 Добавлено @ 22:00 http://forum.vingrad.ru/index.php?act=module&module=vingradfaq&target=main_panel&article=993 |
| Автор: svarogik 27.7.2006, 22:02 |
| что значитпо заданной маске? расширение считается? |
| Автор: Albinos_x 27.7.2006, 22:19 | ||||
вот простой пример поиска на винте файлов *.doc *.xls *.ppt *.rtf :
этот кусок кода найдёт на винте все файлы с указанными расширениями и выведет результат в листбоксы. в первый - дата создания файла, во второй - имя файла, в третий - путь к файлу. если нужно искать только в указанной папке, то нужно использовать только функцию:
|
| Автор: Alexeis 27.7.2006, 22:33 |
маска может включать не только одно расширение, а несколько, так же как в программе поиска windows. Кто по опытней меня дополнят, маска понятие чуть более общее и определяет условия поиска. |
| Автор: Демо 27.7.2006, 23:01 |
| Кобимбинируй простой поиск файлов без маски и Unit Masks Category file name utilities function MatchesMask(const Filename, Mask: string): Boolean; Description Call MatchesMask to check the Filename parameter using the Mask parameter to describe valid values. A valid mask consists of literal characters, sets, and wildcards |
| Автор: Poseidon 28.7.2006, 00:05 | ||
| Albinos_x, зачем искать сначала все файлы: а потом фильтровать нужное: ??? Не проще-ли сразу фильтровать?
|
| Автор: Демо 28.7.2006, 00:26 |
Сразу несколько расширений? |
| Автор: Poseidon 28.7.2006, 00:41 | ||
Ну да.
|
| Автор: Albinos_x 28.7.2006, 12:39 |
| эффект не намного лучше получится...имхо... |
| Автор: svarogik 28.7.2006, 14:03 |
| с этим постараюсь разобраться, а можно еще маленкий вопросик, модераторы не хотелось отдельный топик создавать. Файл заявлен TFilestream как записать в файл переход на следующую строчку, у меня есть мысль, не знаю бредовая или нет, записать в файл символы #13 #10 но не получается вместо этого он пишет решетки. И можно ли писать последовательно, не прибегая к file.seek(,) |
| Автор: Alexeis 28.7.2006, 14:32 | ||
так после очередной записи указатель смещается автоматически. |
| Автор: svarogik 28.7.2006, 14:53 |
| если я сделаю так f.write('hh',2); f.write('wh',2); то в файле будет два символа wh ничего у меня не смещается а если так fn.seek(t,sofrombeginning); f.write('hh',2); fn.seek(t+2,sofrombeginning); f.write('wh',2); вот так получится hhwh Добавлено @ 14:55 что такое shortstring и writebuffer? |
| Автор: Демо 28.7.2006, 14:56 |
Проще сказать - намного хуже, так как сканирование будет идти в любом случае по всем файлам. |
| Автор: Alexeis 28.7.2006, 14:58 |
| shortstring - это паскалевская строка. writebuffer- процедура записи в поток данных любого типа. |
| Автор: Демо 28.7.2006, 15:00 |
Как и TStream.Write |
| Автор: Albinos_x 28.7.2006, 15:13 |
я о том же... |
| Автор: Alexeis 28.7.2006, 15:21 |
с одной разницей, если не удалось записать буфер в поток, то WriteBuffer - сильно матерится, тогда как Write - спокойно молчит. |