Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2009.10.25;
Скачать: [xml.tar.bz2];

Вниз

Путь к файлу в котром присутствует кириллица   Найти похожие ветки 

 
yaric   (2008-08-30 23:32) [0]

Уважаемые Мастера. столкнулся с проблемой которую никак не могу решить. Пишу программу которая в ходе своей работы достает ресурсы(картинки, звук) из архива и испоьзует их. Так вот проблема в том что если архив лежит по пути в котром отсутствуют кириллические символы то все работает нормально.иначе файлы после распаковки из архива просто не находятся...что делать не знаю уже пробовал пользоваться функцией GetShortPathName...но при преобразовании возвращается код ошибки что файл не найден...что делать? Заранее спасибо..


 
KilkennyCat ©   (2008-08-30 23:38) [1]

Ну и что это за чудо-архив? Как разархивация-то идет?


 
yaric   (2008-08-30 23:49) [2]

обычный 7zip. нет на архивирование пенять врядли стоит...разархивирование всегда проходит нормально...а поиск файлов нет...ное сли нужно могу привести код модуля доступа к архиву и распаковки...


 
KilkennyCat ©   (2008-08-30 23:53) [3]


> ое сли нужно могу привести код модуля доступа к архиву и
> распаковки...

зачем? и так ясно, что проблема именно там. ща, схожу за Унтедонфом, и все сам увижу.


 
yaric   (2008-08-30 23:55) [4]

Унтедонф это кто?....немного не понятно...как говорил Шура Воробьянинов...объясните пожалуйста Остап Ибрагимович...извини за шутку но все же если можно поподробнее...


 
KilkennyCat ©   (2008-08-31 00:00) [5]

Универсальный телепатор для отвечающих на форуме.
Потому как без него приходится клещами вытягивать. Ибо иначе
> немного не понятно...


 
Anatoly Podgoretsky ©   (2008-08-31 00:06) [6]

> yaric  (30.08.2008 23:32:00)  [0]

Надо переходить на Юникод или менять локализацию системы.


 
Anatoly Podgoretsky ©   (2008-08-31 00:06) [7]

> yaric  (30.08.2008 23:32:00)  [0]

GetShortPathName тоже надо использовать Юникод версию.


 
yaric   (2008-08-31 00:10) [8]

>>Anatoly Podgoretsky
так дело вcе таки в путях...я правильно понял?


 
yaric   (2008-08-31 00:11) [9]

>>Anatoly Podgoretsky
GetShortPathNameW? или как она называется...а почему сбоит FileExists
объясните пожалуйста просто хочеться до конца разобраться


 
Германн ©   (2008-08-31 00:38) [10]


> а почему сбоит FileExists

А в кавычки заключаешь?


 
yaric   (2008-08-31 00:56) [11]

да заключаю все равно не находит ....попробовал GetShortPathNameW
получаю котроткое имя...теперь находит(спасибо Anatoly Podgoretsky) а раньше нет. Так в чем собственно дело..почему такая ситуация взникла?


 
Anatoly Podgoretsky ©   (2008-08-31 01:01) [12]

> yaric  (31.08.2008 0:10:08)  [8]

А я не знаю, что ты понял, я просто телепатировал на вопрос, он смутный, и я не уверен за свой телепатор.


 
Anatoly Podgoretsky ©   (2008-08-31 01:02) [13]

> yaric  (31.08.2008 0:11:09)  [9]

FileExists -> FindFirstFileW


 
yaric   (2008-08-31 01:04) [14]

итак еще раз...
1) достаю из ахива файл
2) пытаюсь его открыть
   а)не находил его если каталог вкотром он лежал содержал в названии кириллицу
   б) пробовал преобразовывать к котроткому пути GetShortPathName не получалось так как эта функция не чего не возвращает а говорит что файл не найден(через getlasterror)
   в) попробовал преобразовывать с помощью GetShortPathName теперь все вопрядке находит...

в чем дело?


 
yaric   (2008-08-31 01:05) [15]

ой опечатка
в) попробовал преобразовывать с помощью GetShortPathNameW теперь все вопрядке находит...


 
Anatoly Podgoretsky ©   (2008-08-31 01:15) [16]

> yaric  (31.08.2008 0:56:11)  [11]

Локализация для не Юникод программ не русская.


 
yaric   (2008-08-31 01:20) [17]

т.е. насколько я правильно понял...в процессе локализации (работа функции GetShortPathName) неправильно преобразовывались кирилические символы)?


 
yaric   (2008-08-31 01:21) [18]

где об этом можно более подробно почитать...


 
Anatoly Podgoretsky ©   (2008-08-31 01:27) [19]

> yaric  (31.08.2008 1:20:17)  [17]

GetShortPathName, она же GetShortPathNameA работает правильно, поскольку это всего лишь заглушка, реально работает GetShortPathNameW но для этого нужно преобразовать из ANSI в Юникод, но правильно система это может сделать только в рамках локализация и если локализация не русская, то и преобразование будет неверное. Спасение только в прямой работе с Юникодом, пока единственная версия Дельфи, которая это умеет - это 2009


 
Anatoly Podgoretsky ©   (2008-08-31 01:28) [20]

> yaric  (31.08.2008 1:21:18)  [18]

Ну стандартно MSDN только это монстр, можно также почитать Рихтера и некоторых других авторов, для того чтобы в этом монстре MSDN можно было ориентироваться.


 
yaric   (2008-08-31 01:48) [21]

понятно...спасибо большое ...картина мира стала полнее...:)


 
Германн ©   (2008-08-31 02:07) [22]


> Anatoly Podgoretsky ©   (31.08.08 01:27) [19]


> пока единственная версия Дельфи, которая это умеет - это
> 2009

А она уже есть? А она действительно умеет?


 
Riply ©   (2008-08-31 04:56) [23]

> [19] Anatoly Podgoretsky ©   (31.08.08 01:27)
> Спасение только в прямой работе с Юникодом, пока единственная версия Дельфи, которая это умеет - это 2009

ИМНО - если забыть про VCL, то умеет любая версия Delphi ибо она умеет использовать API и NT функции :)
Или я что-то не так поняла ?



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

Форум: "WinAPI";
Текущий архив: 2009.10.25;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.5 MB
Время: 0.042 c
2-1251266538
Риг
2009-08-26 10:02
2009.10.25
Зависание в THread


15-1251059406
Юрий
2009-08-24 00:30
2009.10.25
С днем рождения ! 24 августа 2009 понедельник


15-1251387244
uw
2009-08-27 19:34
2009.10.25
Большой XML


15-1251459961
Наиль
2009-08-28 15:46
2009.10.25
Лишние символы при исполнении bat-файла


2-1251174172
Danila.R
2009-08-25 08:22
2009.10.25
Как вводя данные в Edit, вывести их в Мемо?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский