не видет каталоги с русскими символами при поиске с

Вопросы программирования на Free Pascal, использования компилятора и утилит.

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

не видет каталоги с русскими символами при поиске с

Сообщение svsd_val » 12.02.2011 12:28:11

Код: Выделить всё
uses sysutils;

Procedure ListDir(CurDir:String);
var
  F : TSearchRec;
begin
  if FindFirst(CurDir+'*.*', faAnyFile, F ) = 0 then
    repeat
     writeln('->',curdir+F.name);
    until FindNext(F)<>0;
  FindClose(F);
end;

begin
ListDir('/home/user/');
end.


выводит всё , кроме каталогов с русскими буквами , и также если искать в каталоге с русским буквами не видет другие подкаталоги =(((

что делать ?! :?: :!:

------
проверил , он даже обыкновенные каталоги невидет =( только те в которых есть '.' например '.opera' =((((
svsd_val
незнакомец
 
Сообщения: 9
Зарегистрирован: 12.02.2011 12:04:45

Re: не видет каталоги с русскими символами при поиске с

Сообщение Kubanych » 12.02.2011 14:02:12

Сделай так:
Код: Выделить всё
    uses sysutils;

    Procedure ListDir(CurDir:String);
    var
      F : TSearchRec;
    begin
      if FindFirst(CurDir+'*', faAnyFile, F ) = 0 then
        repeat
         writeln('->',curdir+SysToUtf8(F.name));
        until FindNext(F)<>0;
      FindClose(F);
    end;

    begin
    ListDir('/home/user/');
    end.

Смотри также пример из моей книги "Основы программирования в среде Lazarus", стр. 659.
Kubanych
новенький
 
Сообщения: 73
Зарегистрирован: 15.10.2008 10:02:18

Re: не видет каталоги с русскими символами при поиске с

Сообщение Сквозняк » 12.02.2011 20:19:17

Смотри также пример из моей книги "Основы программирования в среде Lazarus", стр. 659.


Не сохранилось ли у вас исходников книги? В html на ПК читать удобнее.
Сквозняк
энтузиаст
 
Сообщения: 1126
Зарегистрирован: 29.06.2006 22:08:32

Re: не видет каталоги с русскими символами при поиске с

Сообщение svsd_val » 13.02.2011 15:12:13

Kubanych
Ага, рабит, Спасибо =)
однако недолго думая решил пойти другим путём, который тоже работает ^_^
Код: Выделить всё
Procedure ListDir(CurDir:String);
Var _Dir  : PDir;
      _Dirent : PDirent;
begin
  _Dir := fpOpenDir(curdir);
  Repeat
    _Dirent := fpReadDir (_Dir^);
    If _Dirent<>Nil then
       WriteLn( pchar(@_Dirent^.d_name[0]) );
  Until _Dirent=Nil;
  fpCloseDir (_Dir^);
end;
svsd_val
незнакомец
 
Сообщения: 9
Зарегистрирован: 12.02.2011 12:04:45


Вернуться в Free Pascal Compiler

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

Сейчас этот форум просматривают: Yandex [Bot] и гости: 5

Рейтинг@Mail.ru