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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 07.06.2015, 19:30   #31
DarkHacker
Форумчанин
 
Аватар для DarkHacker
 
Регистрация: 12.04.2008
Сообщений: 105
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
bmp2.free и FindClose(sRec) наиболее вероятный источник ошибки в приведенном коде.Ога, и все ошибки с просторов. Думаешь кто-то тщательно отлаживается выкладывая в этот самый простор чего-то
Хорошо. Тогда если вдруг у вас есть отложенный вариант такой функции, помогите пожалуйста. Все что мне нужно это поиск файлов во всех директориях с поддиректориями в указанном пути.

с фрии проверял, с файндклоус нет.
DarkHacker вне форума Ответить с цитированием
Старый 07.06.2015, 19:42   #32
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

Цитата:
Все что мне нужно это поиск файлов во всех директориях с поддиректориями в указанном пути.
этого добра у нас - вагон!
в архиве - модуль dwFiles.pas, в модуле процедура:
Код:
procedure dwListFilesRecursive(const APath, AMask: String; AShowPath: Boolean; AList: TStrings);
и ещё куча функций разной степени ненужности.
Вложения
Тип файла: rar Delphi Works.rar (58.5 Кб, 7 просмотров)
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 07.06.2015, 20:57   #33
DarkHacker
Форумчанин
 
Аватар для DarkHacker
 
Регистрация: 12.04.2008
Сообщений: 105
По умолчанию

Цитата:
Сообщение от min@y™ Посмотреть сообщение
этого добра у нас - вагон!
в архиве - модуль dwFiles.pas, в модуле процедура:
Код:
procedure dwListFilesRecursive(const APath, AMask: String; AShowPath: Boolean; AList: TStrings);
и ещё куча функций разной степени ненужности.
На скорую руку переделал под себя:

Код:
function dwListFilesRecursive_2(bmp:TBitmap; const APath, AMask: String):string;
var
  SR: TSearchRec;
  slDir: TStringList;
  IsFound: Boolean;
  I: integer;
  SPath: String;
  //fSize: DWORD;
  bmp2:TBitmap;
begin

bmp2:=TBitmap.Create();
SPath:= IncludeTrailingPathDelimiter(APath);
   IsFound:= (FindFirst(SPath + AMask, faAnyFile - faDirectory, SR) = 0);

   // добавлено сохранение размера найденного файла, © min@y™ - 21.04.2015
   while IsFound do
     begin

        bmp2.LoadFromFile(SPath +'\'+ sR.Name);
        cut_blank(bmp2);

         	if(simple_search_img(bmp,bmp2)>=1) then
						begin
                if(length(GetLastDir(ExcludeTrailingPathDelimiter(SPath)))<2) then
                  begin
                  Result:=GetLastDir(ExcludeTrailingPathDelimiter(SPath));
                  break;
                end;
					  end;

       IsFound := FindNext(SR) = 0;
     end; // while

   FindClose(SR);
   slDir := TStringList.Create;
   IsFound := FindFirst(SPath + '*.*', faAnyFile, SR) = 0;
   while IsFound do begin
      if ((SR.Attr and faDirectory) <> 0) and (SR.Name[1] <> '.') then
      begin
    			slDir.Add(SPath + SR.Name);
           
      end;
      IsFound := FindNext(SR) = 0;
   end;
   FindClose(SR);
   for I:= 0 to slDir.Count - 1 do begin
      result:=dwListFilesRecursive_2(bmp,slDir[I], AMask);
   end;
   slDir.Free;
   bmp2.free;
   //AList.EndUpdate;
end;
Результат такой же: работает кое какое время.
DarkHacker вне форума Ответить с цитированием
Старый 07.06.2015, 21:33   #34
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

Цитата:
На скорую руку переделал под себя:
не надо так!
не переделывай, иначе не найдёшь ошибку. юзай оригинал dwListFilesRecursive().
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 07.06.2015, 23:42   #35
DarkHacker
Форумчанин
 
Аватар для DarkHacker
 
Регистрация: 12.04.2008
Сообщений: 105
По умолчанию

Цитата:
Сообщение от min@y™ Посмотреть сообщение
не надо так!
не переделывай, иначе не найдёшь ошибку. юзай оригинал dwListFilesRecursive().
И так, оформил след вариантом. чтоб 100% увериться в траблах загрузки. Ваш алгоритм ищет и сохраняет список.
Потом мой только сравнивает по подготовленному списку и не ищет сам, только сравнивает.

И опять через какое-то время ошибки полезли, проверил, список корректный.

Проверяю так:
Код:

function make_simple_check_1(bmp:TBitmap;AList:TStrings):string;
var
i:integer;
bmp2:TBitmap;
begin

bmp2:=TBitmap.Create();

for i:=0 to AList.Count-1 do
begin

        bmp2.LoadFromFile(AList[i]);
        //cut_blank(bmp2);

         	if(simple_search_img(bmp,bmp2)=1) then
						begin
                  result:=GetLastDir(ExtractFileDir(AList[i]));
                  break;
                end;
            end;
            bmp2.Free;
end;
DarkHacker вне форума Ответить с цитированием
Старый 07.06.2015, 23:50   #36
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

simple_search_img() показывай.
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 07.06.2015, 23:53   #37
DarkHacker
Форумчанин
 
Аватар для DarkHacker
 
Регистрация: 12.04.2008
Сообщений: 105
По умолчанию

Цитата:
Сообщение от min@y™ Посмотреть сообщение
simple_search_img() показывай.
А зачем?) Закоментил проверку, оставив только загрузку, ошибка есть..

Все это происходит в цикле непрерывно так как постоянно подгружаются данные из другой программы, но как мне кажется ошибок не должно быть, ведь все корректно.

Последний раз редактировалось DarkHacker; 07.06.2015 в 23:55.
DarkHacker вне форума Ответить с цитированием
Старый 08.06.2015, 00:08   #38
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

Цитата:
оставив только загрузку, ошибка есть..
загрузка падает на одном и том же файле или на разных?
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 08.06.2015, 00:12   #39
DarkHacker
Форумчанин
 
Аватар для DarkHacker
 
Регистрация: 12.04.2008
Сообщений: 105
По умолчанию

Цитата:
Сообщение от min@y™ Посмотреть сообщение
загрузка падает на одном и том же файле или на разных?
на разных файлах

притом если я потом отдельно загружаю тот файл на котором ошибку словил - все ок
DarkHacker вне форума Ответить с цитированием
Старый 08.06.2015, 00:49   #40
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

ты меня устал, я иссяк.
а что, вообще, за задача? может переформулировать её?
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ошибка при загрузке формы CBETJIbIu Microsoft Office Access 2 03.02.2012 23:01
Ошибка при загрузке tae1980 Microsoft Office Excel 2 23.01.2012 10:58
Ошибка: Выбора ОС при загрузке Foxx Операционные системы общие вопросы 5 11.09.2009 01:28
ОШИБКА ПРИ ЗАГРУЗКЕ Костян Пират Операционные системы общие вопросы 5 21.02.2009 12:14
Ошибка при загрузке.... Ronni10 Операционные системы общие вопросы 6 10.01.2008 22:20