![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Регистрация: 22.05.2007
Сообщений: 3
|
![]()
Только недавно начал учить Delphi , вот так и немогу понять как поставить маску *.jpg ,*.gif ,*.jpeg и тд каждый раз копировать и заменять Маску поиска '*.jpg' мне кажется глупо ..
var searchResult : TSearchRec; f:integer; begin memo1.Clear; if FindFirst('*.jpg' , faAnyFile, searchResult) = 0 then begin repeat memo1.Lines.Add (String (''+searchResult.Name));//имя файла который нашли until FindNext(searchResult) <> 0; FindClose(searchResult); f:=Form1.Memo1.Lines.Count;//щитаем строки edit1.text:=IntToStr (f);// 1 Строка = 1 файл .Так узнаем сколько нашли end; Последний раз редактировалось CoreFox; 22.05.2007 в 23:32. |
![]() |
![]() |
![]() |
#2 |
Александр
Администратор
Регистрация: 28.10.2006
Сообщений: 17,630
|
![]()
(FindFirst('*.jpg' , faAnyFile, searchResult) = 0)or(FindFirst('*.gif' , faAnyFile, searchResult) = 0)
then и т.д. То есть нужно использовать логические операторы. |
![]() |
![]() |
![]() |
#3 |
Регистрация: 22.05.2007
Сообщений: 3
|
![]() |
![]() |
![]() |
![]() |
#4 |
Форумчанин
Регистрация: 30.03.2007
Сообщений: 124
|
![]()
мужики помогите кто может
вот написал: Код:
![]() Спасибо не нужно, а на весы слева кликнуть не помешает!!! |
![]() |
![]() |
![]() |
#5 |
Участник клуба
Регистрация: 12.10.2007
Сообщений: 1,204
|
![]()
Во первых короткое вычисление булевых выражений - второе выражение не вычисляется. Во вторых FindFirst инициализирует R.
Не проще сделать отдельную функцию ?: Код:
|
![]() |
![]() |
![]() |
#6 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
![]() Цитата:
I'm learning to live...
|
|
![]() |
![]() |
![]() |
#7 |
Новичок
Джуниор
Регистрация: 18.01.2008
Сообщений: 1,720
|
![]()
НЕЛЬЗЯ здесь использовать логические операторы по двум причинам минимум:
1. Оптимизация вычислений логических выражений. Если мы определяем, чему равно выражение (X1 or X2) и X1 - истинно, то значение X2 вычисляться не будет, т.е. в данном случае FindFirst не будет вызвана второй раз. 2. все разновидности функции findfirst возвращают объект, который в дальнейшем используется функцией findnext, соответсвенно, если мы вызовем findfirst десять раз подряд, значение будет иметь только последний вызов. В данном случае нужно вызывать findfirst для каждого расширения отдельно и пользоваться в дальнейшем группами findnext для каждого возвращенного разными findfirst хэндлами по отдельности. |
![]() |
![]() |
![]() |
#8 |
Форумчанин
Регистрация: 30.03.2007
Сообщений: 124
|
![]()
значит Alar бред советует, и если мне нужно найти файлы с неколькими розрешениями, прибется либо несколько раз либо проверять вручную?!!!
херово получается! Но все равно спасибо! ![]() Спасибо не нужно, а на весы слева кликнуть не помешает!!! |
![]() |
![]() |
![]() |
#9 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
![]() Цитата:
I'm learning to live...
Последний раз редактировалось Stilet; 21.02.2008 в 14:36. |
|
![]() |
![]() |
![]() |
#10 |
Старожил
Регистрация: 06.08.2007
Сообщений: 2,183
|
![]()
Использвать для сравнения найденного пути, строк.
Здесь: S - сравниваемая строка, Lst - Массив масок; Если True значит есть совпадения. Код:
Как видите не так сложно, ищет быстро. Последний раз редактировалось Alter; 21.02.2008 в 15:23. |
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Поиск по "маске" | Родион | БД в Delphi | 2 | 16.06.2008 07:33 |
Как удалить из строки подстроку по маске ? | - fenix - | Помощь студентам | 4 | 23.04.2008 15:04 |
Найти окно по маске | Иллидан | Общие вопросы Delphi | 2 | 28.02.2008 01:06 |
Поиск | MAKEDON | Общие вопросы Delphi | 2 | 22.02.2008 22:47 |
Замена по маске | Drain | Общие вопросы Delphi | 1 | 14.02.2008 16:08 |