Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.07.20;
Скачать: CL | DM;

Вниз

FindFirst и Unicode   Найти похожие ветки 

 
TOXaKGD   (2008-06-18 22:06) [0]

В коде программы имеется функции FindFirst(MaskStr,faAnyFile,SearchR);
и соотв FindNext(SearchR)

Все бы ничего, только в TSearchRec поле Name имеет тип TFileName (он определен как string). В итоге если находится файл, в имени которого имеются символы в Unicode, то записываются они в SearchR.Name искаженными

Подскажите пожалуйста как решить эту проблему.


 
Riply ©   (2008-06-18 23:10) [1]

> [0] TOXaKGD   (18.06.08 22:06)
> Все бы ничего, только в TSearchRec поле Name имеет тип TFileName (он определен как string).
> В итоге если находится файл, в имени которого имеются символы в Unicode,
> то записываются они в SearchR.Name искаженными

FindFirstFileW ?


 
TOXaKGD   (2008-06-19 00:45) [2]

Из какого модуля эта функция?


 
Riply ©   (2008-06-19 00:48) [3]

> [2] TOXaKGD   (19.06.08 00:45)
> Из какого модуля эта функция?

У меня она живет в Windows.pas  :)


 
Тын-Дын ©   (2008-06-19 09:28) [4]


> В итоге если находится файл, в имени которого имеются символы
> в Unicode


А что, и такие бывают?


 
Игорь Шевченко ©   (2008-06-19 09:41) [5]


> А что, и такие бывают?


бывают


 
Тын-Дын ©   (2008-06-19 09:58) [6]


> Игорь Шевченко ©   (19.06.08 09:41) [5]
>
> > А что, и такие бывают?
>
>
> бывают


Не встречал имён файлов в Unicode.


 
Игорь Шевченко ©   (2008-06-19 10:31) [7]


> Не встречал имён файлов в Unicode.


Расширяй кругозор, посохраняй страничек из тырнета с разными типографскими символами в имени


 
Тын-Дын ©   (2008-06-19 10:43) [8]


> Расширяй кругозор, посохраняй страничек из тырнета с разными
> типографскими символами в имени


Ну, это-то известно. Вот только не думал, что на диске имя записывается в юникоде.


 
Riply ©   (2008-06-19 10:49) [9]

> [8] Тын-Дын ©   (19.06.08 10:43)
> Ну, это-то известно. Вот только не думал, что на диске имя записывается в юникоде.

Например, NTFS хранит имена в Unicode


 
Anatoly Podgoretsky ©   (2008-06-19 13:50) [10]

> Тын-Дын  (19.06.2008 10:43:08)  [8]

Пора перейти с Windows 95 на Windows ХР


 
TOXaKGD   (2008-06-19 21:11) [11]

Я тоже раньше ничего не знал про Unicode в именах, пока не объявился баг в программе, связанный с этой проблемой.

Спасибо за советы. Буду пробовать


 
TOXaKGD   (2008-06-19 21:15) [12]

Кстати, где можно найти описание на FindFirstW?


 
Правильный-Вася   (2008-06-19 21:46) [13]


> Кстати, где можно найти описание на FindFirstW?

в msdn


 
Riply ©   (2008-06-19 21:46) [14]

> [12] TOXaKGD   (19.06.08 21:15)
> Кстати, где можно найти описание на FindFirstW?

Я такой ф-ии не знаю.
Если интересует FindFirstFileW, то как я уже говорила: все сидит в Windows.pas
Вот кусочек оттуда, раз уж тебе самому Crtl + Click тяжело сделать :)

_WIN32_FIND_DATAW = record
   dwFileAttributes: DWORD;
   ftCreationTime: TFileTime;
   ftLastAccessTime: TFileTime;
   ftLastWriteTime: TFileTime;
   nFileSizeHigh: DWORD;
   nFileSizeLow: DWORD;
   dwReserved0: DWORD;
   dwReserved1: DWORD;
   cFileName: array[0..MAX_PATH - 1] of WideChar;
   cAlternateFileName: array[0..13] of WideChar;
 end;

function FindFirstFileW(lpFileName: PWideChar; var lpFindFileData: TWIN32FindDataW): THandle; stdcall;


 
наблюдатель   (2008-06-19 21:57) [15]

http://www.koders.com/delphi/fid28C8CC3E6F678ABFC8C27A384CC63A307D60FD84.aspx?s=tntclasses


 
TOXaKGD   (2008-06-19 23:11) [16]


> то как я уже говорила:

Девушка-кодер-это интересно ))


> Вот кусочек оттуда, раз уж тебе самому Crtl + Click тяжело
> сделать :)
>
> _WIN32_FIND_DATAW = record
>    dwFileAttributes: DWORD;
>    ftCreationTime: TFileTime;
>    ftLastAccessTime: TFileTime;
>    ftLastWriteTime: TFileTime;
>    nFileSizeHigh: DWORD;
>    nFileSizeLow: DWORD;
>    dwReserved0

Спасибо, это я уже посмотрел. Мне интересно было есть ли отличие этой фии от FindFirst и как она работает с FindNext


 
TOXaKGD   (2008-06-19 23:15) [17]


> наблюдатель   (19.06.08 21:57) [15]
> http://www.koders.com/delphi/fid28C8CC3E6F678ABFC8C27A384CC63A307D60FD84.
> aspx?s=tntclasses

Отдельное спасибо



Страницы: 1 вся ветка

Текущий архив: 2008.07.20;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.019 c
2-1213879626
abhtr
2008-06-19 16:47
2008.07.20
Как отобразить нули, после запятой (в цене) в DBGride


2-1214166864
psa247
2008-06-23 00:34
2008.07.20
Выполнение запроса с цифрами


2-1213686010
webpauk
2008-06-17 11:00
2008.07.20
Найти MDI


15-1212403397
Sergey_
2008-06-02 14:43
2008.07.20
Требуется модуль.


15-1212757849
Vlad Oshin
2008-06-06 17:10
2008.07.20
Услышал, что Windows генерирует GUID на каждую свою копию