Форум: "Начинающим";
Текущий архив: 2008.07.20;
Скачать: [xml.tar.bz2];
Вниз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;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.042 c