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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 17.04.2013, 10:33   #1
calypso
Форумчанин
 
Регистрация: 02.12.2012
Сообщений: 250
По умолчанию FindClose(hFind) - типы параметров не актуальны

Embarcadero Delphi XE2, не пойму в чем проблема.Написан стандартный код поиска файлов с использованием:
FindData:TWin32FindData;
hFind:THandle
В конце компилятор ругается на строку FindClose(hFind) - type of parameters must be actual
Причем если эту строку закомментировать,то поиск работает но не заканчивается (бесконечно)
calypso вне форума Ответить с цитированием
Старый 17.04.2013, 11:05   #2
FaTaL
Участник клуба
 
Аватар для FaTaL
 
Регистрация: 09.11.2007
Сообщений: 1,762
По умолчанию

Напиши полностью код поиска.
FaTaL вне форума Ответить с цитированием
Старый 17.04.2013, 12:53   #3
calypso
Форумчанин
 
Регистрация: 02.12.2012
Сообщений: 250
По умолчанию

Код:
hFind:=FindFirstFile('*.bin',FindData);
if (hFind<>INVALID_HANDLE_VALUE) then
begin
  repeat
	  begin
  ListBox1.Items.Add(FindData.cFileName);
   ......something code....
              end;
      until (FindNextFile(hFind,FindData));
          FindClose(hFind);
	  CloseHandle(hFind);
	end
calypso вне форума Ответить с цитированием
Старый 17.04.2013, 13:28   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

дык, на оффсайте не пробовали смотреть?

не оно?
TSearchRec
Код:
var 
   FindData : TSearchRec;
   iFound : integer;
begin
iFound := System.SysUtils.FindFirst('*.bin', faAnyFile, FindData);
while iFound=0 do begin
  ....
  iFound := System.SysUtils.FindNext(FindData);
end;
System.SysUtils.FindClose(FindData)

Последний раз редактировалось Serge_Bliznykov; 17.04.2013 в 13:38.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 17.04.2013, 13:29   #5
FaTaL
Участник клуба
 
Аватар для FaTaL
 
Регистрация: 09.11.2007
Сообщений: 1,762
По умолчанию

Если Вы хотите сделать поиск всех файлов *.bin и занести их в листбокс то не проще ли сделать так:
Код:
var
  SR:TSearchRec;
  FindRes:Integer;
begin
  ListBox1.Clear;
  FindRes:=FindFirst(Папка для поиска + '*.bin', faAnyFile, SR);
  while findres = 0 do
    begin
      ListBox1.Items.Add(SR.Name)
      FindRes:=FindNext(SR);
    end;
  FindClose (SR);
end;
FaTaL вне форума Ответить с цитированием
Старый 17.04.2013, 13:49   #6
calypso
Форумчанин
 
Регистрация: 02.12.2012
Сообщений: 250
По умолчанию

Ну вот с этим TSearchRec как раз путаница\непонимание\глюки компилятора\нужное подчеркнуть.
На с++ всё просто,там есть структура WIN32_FIND_DATA, hFind HANDLE и всё работает. Может быть FindClose хочет чтобы параметр был TSearchRec,а я ему даю THandle\hFile? Но есть примеры для дельфей где структура TWin32FindData и hFind является хэндлом
calypso вне форума Ответить с цитированием
Старый 17.04.2013, 15:09   #7
FaTaL
Участник клуба
 
Аватар для FaTaL
 
Регистрация: 09.11.2007
Сообщений: 1,762
По умолчанию

Конечно С++ отличается от Delphi. Вы бы ещё C# вспомнили, где всего то надо Directory.GetFiles(...)
Что Вам не нравится в моём примере или напишите конкретнее что Вы хотите сделать или чего добиться?
FaTaL вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Организация программ с использованием процедур .использованием параметров-значений и параметров переменных Фрейтор 40-500 Помощь студентам 0 02.11.2012 21:58
Организация программ с использованием процедур .использованием параметров-значений и параметров переменных Фрейтор 40-500 Помощь студентам 6 02.11.2012 21:46
Типы параметров в функциях экспортируемых из DLL. (AnsiString и WideString) avd Общие вопросы Delphi 2 03.09.2012 16:09
Какие "запчасти" актуальны? Simply-Art Компьютерное железо 6 09.08.2010 17:04