Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.04.2008, 14:33   #11
GAGARIN-NEW
Познаю мир
Форумчанин Подтвердите свой е-майл
 
Аватар для GAGARIN-NEW
 
Регистрация: 05.10.2007
Сообщений: 387
По умолчанию

Я думал обойтись без лишней проверки . просто маску правильно ввести.
Ведь проверка каждого файла замедлит работу процедуры
---
GAGARIN-NEW вне форума Ответить с цитированием
Старый 20.04.2008, 14:58   #12
student_63
Пользователь
 
Аватар для student_63
 
Регистрация: 07.11.2007
Сообщений: 92
По умолчанию

Ищет все файлы на всех дисках
Вложения
Тип файла: rar search.rar (1.1 Кб, 23 просмотров)
Я уверен, вы согласитесь со мной... что если
со страницей 534 мы встречаемся во второй главе, то первая глава должна быть невыносимо длинной.
- ШЕРЛОК ХОЛМС
student_63 вне форума Ответить с цитированием
Старый 08.04.2009, 15:26   #13
Lancer
 
Аватар для Lancer
 
Регистрация: 08.04.2009
Сообщений: 5
По умолчанию

не нашел как удалить полностью) уже решил свою проблему
меня постоянно преследуют умные мысли... Но йа бистрее

Последний раз редактировалось Lancer; 08.04.2009 в 22:00.
Lancer вне форума Ответить с цитированием
Старый 09.04.2009, 18:01   #14
Lancer
 
Аватар для Lancer
 
Регистрация: 08.04.2009
Сообщений: 5
По умолчанию

нет, всетаки я не могу сам разобраться...
Код:
procedure ScanDir(StartDir: string; Mask: string ; List: TStrings);
var
  SearchRec: TSearchRec;
  t:string;
begin
  if Mask = '' then
    Mask := '*.*';
  if StartDir[Length(StartDir)] <> '\' then
    StartDir := StartDir + '\';
    Showmessage(inttostr(length(StartDir)));// смотрю из скольки символов состоит путь к папке
  if FindFirst(StartDir + Mask, faAnyFile, SearchRec)=0 then
  begin
    repeat
      Application.ProcessMessages;
      if (SearchRec.Attr and faDirectory) <> faDirectory then
          List.Add(StartDir + SearchRec.Name);
        else if (SearchRec.Name <> '..') and (SearchRec.Name <> '.')then begin
       // List.Add(StartDir + SearchRec.Name + '\');
      ScanDir(StartDir + SearchRec.Name + '\', Mask, List);
  end;
until FindNext(SearchRec) <> 0;
FindClose(SearchRec);
end;
end;
проблема такая, я в программе указываю путь к папке, программа сканирует эту папку, НО, если путь к нужной папке в ос состоит из <32 символов то все замечательно, все находит. Если же путь >32 то ничего не хочет искать... Почему? При пошаговой проверке показывает что FindFirst(StartDir + Mask, faAnyFile, SearchRec)=0, тоесть Должен начинаться цикл но нет, он переходит к концу процедуры как будто условие не выполнилось... Причем, раньше, программа работала с куда более длинным путем... После пары вылетов изза ошибок работы с базой начались вышесказанные проблемы(в программе идет добавление из указанной папки информации о файлах в этой папке в базу) , тоесть когда длинный путь не хочет работать... Может эти ошибки с базой както повлияли? Может изза них теперь путь не должен быть длинным? Помогите пожалуйста разобраться, я не пойму в чем дело...
меня постоянно преследуют умные мысли... Но йа бистрее
Lancer вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
список всех открытых файлов и папок. Teleport Общие вопросы Delphi 4 22.06.2008 11:29
Поиск папок Artificial Помощь студентам 2 16.03.2008 22:30
поиск Папок Dukalis Общие вопросы C/C++ 3 17.01.2008 20:22
Поиск файлов LeoN Общие вопросы Delphi 5 25.11.2007 22:54
поиск файлов KORN Компоненты Delphi 3 12.10.2007 05:42