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

Вниз

Ошибка Invalid File Name   Найти похожие ветки 

 
Германн ©   (2005-09-20 18:04) [0]

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


 
Reindeer Moss Eater ©   (2005-09-20 18:11) [1]

Конечно может.

if filename <> "my_favorite_file_name.txt" then
Raise Exception.Create("Invalid Filename");


 
Hamster ©   (2005-09-20 18:16) [2]

Насчет Filename - не знаю, а вот папка не может иметь имен:

con
com1-com9
lpt1-lpt9
null


 
IceBeerg ©   (2005-09-20 18:20) [3]

Германн ©   (20.09.05 18:04)
Приведи код...


 
Германн ©   (2005-09-20 18:20) [4]

2 Reindeer Moss Eater ©   (20.09.05 18:11) [1]
Не тот случай точно!

Сие исключение скорее всего возникает в стандартном MMSystem.


 
Германн ©   (2005-09-20 18:26) [5]

Уточню ворос. Не может ли это быть связано с каким-либо настройками XP в области администрирования?
Потому, что ошибка есть только на одном объекте.


 
Reindeer Moss Eater ©   (2005-09-20 18:27) [6]

При чем здесь случай?
Ты спросил про "может", я сказал, что может.


 
Digitman ©   (2005-09-20 18:30) [7]


> Сие исключение скорее всего возникает в стандартном MMSystem


ну так локализуй его !

какие проблемы-то ?)

исходники ж имеются)..


 
Германн ©   (2005-09-20 19:09) [8]

2 Digitman ©   (20.09.05 18:30) [7]

> исходники ж имеются)..


Исходники чего? winmm.dll? Их нет у меня. :(


 
Digitman ©   (2005-09-21 08:25) [9]


> Германн ©   (20.09.05 19:09) [8]


приведи дословно текст в сообщении об исключении ..


 
Чапаев ©   (2005-09-21 09:39) [10]

> [2]
И для файлов тоже справедливо. Ещё ты не упомянул AUX и PRN.


 
Германн ©   (2005-09-21 13:18) [11]

2 Digitman ©   (21.09.05 08:25) [9]

Строка из моего логфайла:
01.09.2005 8:09:07-EInOutError : Invalid filename

пишется строка в логфайл так:
В Application.OnException
St:=DateTimeToStr(Now)+"-"+ E.ClassName+" : "+E.Message;


 
Digitman ©   (2005-09-21 13:25) [12]

так... а с чего ты взял , что следы здесь ведут в MM-подсистему ?


 
Германн ©   (2005-09-21 13:38) [13]

Потому что имя файла передается в функцию PlaySound.


 
Digitman ©   (2005-09-21 13:47) [14]

каково же оно (имя файла) выглядит дословно в данной ситуации ?


 
evvcom ©   (2005-09-21 13:50) [15]

а если закоммментарить вызов PlaySound, ошибка исчезает? Тогда смотреть на каком именно имени валится exception


 
Германн ©   (2005-09-21 14:03) [16]

2
Digitman ©   (21.09.05 13:47) [14]
evvcom ©   (21.09.05 13:50) [15]

Экспериментировать буду завтра. На том объекте, где это все случилось. О результатах сообщу, если кому интересно будет.
Но суть в том, что эта программа работает уже около 8 лет у сотен покупателей. С ней случалось всякое, но такого пока не было. :(
Хотел просто заранее узнать в какие стороны еще копать, чтобы не задерживать клиентов.


 
Германн ©   (2005-09-21 14:03) [17]

Удалено модератором


 
Anatoly Podgoretsky ©   (2005-09-21 14:09) [18]

Германн ©   (21.09.05 13:18) [11]
Вот здесь неплохо бы иметь и имя файла


 
Anatoly Podgoretsky ©   (2005-09-21 14:15) [19]

И как я понял ты используешь глобальный последний обработчик ошибки, после которого выход из программы. А устойчивые к сбоям программы обрабатывают ошибку по месту выполнения операции и продолжают работать дальше.


 
Германн ©   (2005-09-21 14:15) [20]

2 Anatoly Podgoretsky ©   (21.09.05 14:09) [18]

> Германн ©   (21.09.05 13:18) [11]
> Вот здесь неплохо бы иметь и имя файла


А как его здесь поиметь?
В EInOutError нет информации об имени файла :(


 
Digitman ©   (2005-09-21 14:40) [21]


> Германн ©   (21.09.05 14:15) [20]


> А как его здесь поиметь?


ты не заболел ли ?

протоколируй ВСЕ вызовы PlaySound, выясни, при каком значении 1-го параметра происходит отказ


 
Fay ©   (2005-09-21 14:46) [22]

2 Hamster ©   (20.09.05 18:16) [2]
не null, а nul


 
Германн ©   (2005-09-21 15:04) [23]

2 Digitman ©   (21.09.05 14:40) [21]

Именно это сейчас и делаю.
Завтра буду у клиента на объекте смотреть.
А Германн ©   (21.09.05 14:15) [20] написано в контексте [18]


 
Anatoly Podgoretsky ©   (2005-09-21 15:10) [24]

Германн ©   (21.09.05 14:15) [20]
Это есть по месту выполнения операции, обрабатывай ошибки там.


 
umbra ©   (2005-09-21 15:14) [25]

Это очень похоже на то, что у пользователя, запускающего прогу нет прав на чтение (или исполнение) или самого файла или какой-то папки по пути к нему (если речь идет о ХР, 2000, 2003


 
Германн ©   (2005-09-22 01:51) [26]

Блин!
А может быть до PlaySound и не доходит. :(
Сейчас обнаружил, что если я удалю свой каталог для временных WAV"ов, то выдается такая же ошибка. Т.е. по аналогии с ТР должно бы быть "Path not found", но однако - InvalidFileName. :(
И как тут быть?

Но проверил свой инсталлятор, вышеописанный каталог должен создавться!


 
Германн ©   (2005-09-22 02:21) [27]

Ну да.
А с другой стороны, а как производится анализ "валидности" имени файла?
Имхо, "\" должно иметь смысл - переход в подкаталог! Но вдруг у MS другой алгоритм?


 
Digitman ©   (2005-09-22 08:28) [28]


> Германн ©   (22.09.05 01:51) [26]


> может быть до PlaySound и не доходит


ну начинается !)

то доходит, то не доходит ..

ты уж определись для начала, КАКАЯ конкретно строчка твоего кода при своем исполнении возбуждает искл.ситуацию, потом и разговор предметный будет о причинах происходящего ..


 
Германн ©   (2005-09-22 16:10) [29]

Таки да.
Проблема была в том, что программа пыталась создавать временный звуковой файл с именем <INSTALLDIR>/SOUND/TEMP/NNNN.WAV, а инсталлятор создал папку <INSTALLDIR>/SOUND/TMP :(


 
Германн ©   (2005-09-23 01:10) [30]

Таки есть некая "подлянка" от Борланда.
В TP7 ReWrite(F) если имя файла включало в себя "отсутствующий" каталог, всегда (и при $I+ и при $I-) выдавало IOResult=3. Runtime error 003, Path not found.
А вот в Делфи при $I-  IOResult=3 (Path not found),  а при $I+ - Invalid file name. :(


 
Джо ©   (2005-09-23 02:00) [31]

Нужно было использовать ForceDirectories или функциональный аналог, а не ожидать милости от Борланда ;p


 
Германн ©   (2005-09-23 02:35) [32]

2 Джо ©   (23.09.05 02:00) [31]
Честно говоря, я и не ожидал "милости от Борланда!"
Но надеялся (может быть напрасно) на некую "приемственность".
Т.е. на "совместимость версий "сверху-вниз"" :(

То есть, если Вам при установке программы нужно создать некую иерархию служебных подкаталогов(папок), неужели вы будете каждый раз при запуске программы или еще когда пользовать  ForceDirectories?

Но и суть то не в этом, существует ли каталог(папка) с таким именем! Суть в том, что что "сообщение об ошибке" в этом случае стало менее конкретным, чем оно было ранее!


 
Джо ©   (2005-09-23 02:42) [33]


> То есть, если Вам при установке программы нужно создать
> некую иерархию служебных подкаталогов(папок), неужели вы
> будете каждый раз при запуске программы или еще когда пользовать
>  ForceDirectories?

Вообще-то, я так и делаю :) Может, оно и не оправдано и т.д., но пару раз крупно нарвался с шибко умными пользователями, теперь никогда не полагаюсь на структуру каталогов, где бы она ни использовалась... Не в качестве похвальбы - просто к слову ;-)


 
Германн ©   (2005-09-23 02:55) [34]

2 Джо ©   (23.09.05 02:42) [33]

А что вы скажете на "права" пользователей!
ИМХО, есс-но, что на каталог в который устанавливается программа, права "наверно?" есть". А на те, которые ForseDirectories?



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

Форум: "Основная";
Текущий архив: 2005.10.16;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.52 MB
Время: 0.045 c
2-1126981545
Melok
2005-09-17 22:25
2005.10.16
Расчёт разницы между двумя датами


14-1127846871
syte_ser78
2005-09-27 22:47
2005.10.16
Посоветуйте программу.


1-1127714799
MegaVolt
2005-09-26 10:06
2005.10.16
Как протестировать в Dunit событие?


14-1127808548
Rentgen
2005-09-27 12:09
2005.10.16
Байт в сектор?


14-1127718048
Vudu
2005-09-26 11:00
2005.10.16
Почему забегают часы?





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский