![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
FindFirst и Unicode [XP]
TOXaKGD © (2008-06-18 22:06:00)В коде программы имеется функции FindFirst(MaskStr,faAnyFile,SearchR);
и соотв FindNext(SearchR)
Все бы ничего, только в TSearchRec поле Name имеет тип TFileName (он определен как string). В итоге если находится файл, в имени которого имеются символы в Unicode, то записываются они в SearchR.Name искаженными
Подскажите пожалуйста как решить эту проблему.
TOXaKGD (2008-06-19 23:15:00) [1]
> наблюдатель (19.06.08 21:57) [15]
> http://www.koders.com/delphi/fid28C8CC3E6F678ABFC8C27A384CC63A307D60FD84.
> aspx?s=tntclasses
Отдельное спасибо
TOXaKGD (2008-06-19 23:11:00) [2]
> то как я уже говорила:
Девушка-кодер-это интересно ))
> Вот кусочек оттуда, раз уж тебе самому Crtl + Click тяжело
> сделать :)
>
> _WIN32_FIND_DATAW = record
> dwFileAttributes: DWORD;
> ftCreationTime: TFileTime;
> ftLastAccessTime: TFileTime;
> ftLastWriteTime: TFileTime;
> nFileSizeHigh: DWORD;
> nFileSizeLow: DWORD;
> dwReserved0
Спасибо, это я уже посмотрел. Мне интересно было есть ли отличие этой фии от FindFirst и как она работает с FindNext
наблюдатель (2008-06-19 21:57:00) [3]http://www.koders.com/delphi/fid28C8CC3E6F678ABFC8C27A384CC63A307D60FD84.aspx?s=tntclasses
Riply (2008-06-19 21:46:00) [4]> [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:46:00) [5]
> Кстати, где можно найти описание на FindFirstW?
в msdn
TOXaKGD (2008-06-19 21:15:00) [6]Кстати, где можно найти описание на FindFirstW?
TOXaKGD (2008-06-19 21:11:00) [7]Я тоже раньше ничего не знал про Unicode в именах, пока не объявился баг в программе, связанный с этой проблемой.
Спасибо за советы. Буду пробовать
Anatoly Podgoretsky (2008-06-19 13:50:00) [8]> Тын-Дын (19.06.2008 10:43:08) [8]
Пора перейти с Windows 95 на Windows ХР
Riply (2008-06-19 10:49:00) [9]> [8] Тын-Дын © (19.06.08 10:43)
> Ну, это-то известно. Вот только не думал, что на диске имя записывается в юникоде.
Например, NTFS хранит имена в Unicode
Тын-Дын (2008-06-19 10:43:00) [10]
> Расширяй кругозор, посохраняй страничек из тырнета с разными
> типографскими символами в имени
Ну, это-то известно. Вот только не думал, что на диске имя записывается в юникоде.
Игорь Шевченко (2008-06-19 10:31:00) [11]
> Не встречал имён файлов в Unicode.
Расширяй кругозор, посохраняй страничек из тырнета с разными типографскими символами в имени
Тын-Дын (2008-06-19 09:58:00) [12]
> Игорь Шевченко © (19.06.08 09:41) [5]
>
> > А что, и такие бывают?
>
>
> бывают
Не встречал имён файлов в Unicode.
Игорь Шевченко (2008-06-19 09:41:00) [13]
> А что, и такие бывают?
бывают
Тын-Дын (2008-06-19 09:28:00) [14]
> В итоге если находится файл, в имени которого имеются символы
> в Unicode
А что, и такие бывают?
Riply (2008-06-19 00:48:00) [15]> [2] TOXaKGD (19.06.08 00:45)
> Из какого модуля эта функция?
У меня она живет в Windows.pas :)
TOXaKGD (2008-06-19 00:45:00) [16]Из какого модуля эта функция?
Riply (2008-06-18 23:10:00) [17]> [0] TOXaKGD (18.06.08 22:06)
> Все бы ничего, только в TSearchRec поле Name имеет тип TFileName (он определен как string).
> В итоге если находится файл, в имени которого имеются символы в Unicode,
> то записываются они в SearchR.Name искаженными
FindFirstFileW ?