Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Поиск файла по всему диску  (Прочитано 4465 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Shouldercannon
Постоялец

ru
Offline Offline

« : 01-09-2012 10:50 » 

Нашёл способ, но он не работает в Delphi 2010 если данные подставлять из TEdit или из чего-либо другого. В чём может заключаться проблема?
Код: (Delphi)
uses Imagehlp
...
procedure TForm1.Button1Click(Sender: TObject);
var
  FilePath: PAnsiChar;
begin
  Button1.Enabled := False;
  GetMem(FilePath, MAX_PATH);
  if SearchTreeForFile('D:\'{PAnsiChar(Edit1.Text)}, 'test.txt'{PAnsiChar(Edit2.Text)}, FilePath) then ShowMessage ('Найден файл: ' + FilePath);
  FreeMem(FilePath);
  Button1.Enabled := True;
end;
Записан
zubr
Модератор

by
Offline Offline
Пол: Мужской

« Ответ #1 : 01-09-2012 11:32 » 

Скорее всего из за того, что Delphi2010 использует unicod-ный вариант функции (легко проверить, если навести курсор на имя функции, вызвать контекстное меню - команду Find Declaration), а у тебя в коде идет преобразование параметров к типу PAnsiChar.
Записан
Shouldercannon
Постоялец

ru
Offline Offline

« Ответ #2 : 01-09-2012 15:11 » new

Вот, что имею
Решение:
Код: (Delphi)
if SearchTreeForFile(PAnsiChar(AnsiString(Edit1.Text)), PAnsiChar(AnsiString(Edit2.Text)), FilePath) then

* Untitled-1.gif (7.24 Кб - загружено 725 раз.)
« Последнее редактирование: 01-09-2012 15:17 от Shouldercannon » Записан
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines