Форум: "Основная";
Текущий архив: 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.044 c