Поиск в Linux идеальный, а в Винде проблематичный

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Поиск в Linux идеальный, а в Винде проблематичный

Сообщение gc986 » 03.09.2010 17:34:31

Всем привет!

Написал приложение в Lazarus для Linux и всё работает идеально. Попробовал перекомпилировать код для винды и столкнулся с проблемкой - не получается произвести поиск файла по указанному пути; программа работает если поиск проводить в каталоге программы. А в линуксе-то всё работает!

Кто нибудь знает в чём дело ???

Вод этот код:

procedure GetFileCount(dir : string);
var fs : TSearchRec;
begin
ColFLST:=0;
if FindFirst(dir+'\*.lts',faAnyFile, fs)=0 then // Если заменить на - if FindFirst('*.lts',faAnyFile, fs)=0 then - то ищет в папке программы (вообщем хоть чтото работает :). - - P.S. Путь к папке с файлами задаётся верно.
repeat
inc(ColFLST);
Form1.ListBox1.Items.Add(fs.Name); // Добавляем файл в список
until FindNext(fs)<>0;
SysUtils.FindClose(fs);
end;
Аватара пользователя
gc986
незнакомец
 
Сообщения: 2
Зарегистрирован: 07.07.2010 22:26:57

Re: Поиск в Linux идеальный, а в Винде проблематичный

Сообщение Brainenjii » 03.09.2010 17:36:45

Проблема в кодировке. Используй нечто вроде такого для кроссплатформенного решения
Код: Выделить всё
FindFirst(UTF8ToSys(dir + DirectorySeparator + '*.lts'),faAnyFile, fs)=0
Аватара пользователя
Brainenjii
энтузиаст
 
Сообщения: 1351
Зарегистрирован: 10.05.2007 00:04:46

Re: Поиск в Linux идеальный, а в Винде проблематичный

Сообщение Maxizar » 03.09.2010 18:09:56

Код: Выделить всё
  if  (BaseDir='') or (not DirectoryExists(BaseDir)) then Exit; //Ааа нас обманули :)

  Dir := IncludeTrailingPathDelimiter(BaseDir);      //для Win ='\' Linux='/'
  iIndex := FindFirst(Dir+'*.*', faAnyFile, SearchRec);


dir + DirectorySeparator - не безопастно. вдруг dir уже имеет окончание.
Maxizar
постоялец
 
Сообщения: 385
Зарегистрирован: 20.03.2010 19:48:14

Re: Поиск в Linux идеальный, а в Винде проблематичный

Сообщение gc986 » 03.09.2010 19:25:52

Спасибо!!! Всё работает !!! :D :D :D
Аватара пользователя
gc986
незнакомец
 
Сообщения: 2
Зарегистрирован: 07.07.2010 22:26:57


Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 50

Рейтинг@Mail.ru