![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Где запретить недопустимые символы в имени файла
Aleks © (2006-10-26 01:03:00)Доброго времени суток.
В программе при создании имени файла используется InputBox.
Где или как запретить пользователю ввод некоторых символов.
Anatoly Podgoretsky (2006-10-26 12:10:00) [21]
> На то есть код отказа)
А если подумать шире!, то имя C:\X\MyFile.ext недопустимо, а вот C:\Y\MyFile.ext допустимо. Только шире надо мыслить. Под первым именем писать не буду, пошлю подальше, не важно почему, оно не допустимо для меня, а вот под вторым пожалуйста, такое имя я принимаю.
С учетом многообразия инсталированых файловых систем я как правило получу код ответа 5 во всех случаях, иногда это будут разные коды, но суть одна подобное имя недопустимо для файловой системы.
Anatoly Podgoretsky (2006-10-26 12:06:00) [22]
> Подразумевалась C:\MyFile.ext
А у меня подразумевалась папка С, по относительному пути и файл MyFile.ext
Сергей М. (2006-10-26 12:01:00) [23]
> запись запрещена, то значит это имя неправильное
На то есть код отказа)
Сергей М. (2006-10-26 12:00:00) [24]
> не хватает контеста
Подразумевалась C :\MyFile.ext
Anatoly Podgoretsky (2006-10-26 11:56:00) [25]
>
> Юзер, к примеру, ввел 'C\MyFile.ext', недопустимые символы
> при этом отсутствуют, однако эта строка инвалидна.
Возможно, но одназначно валидна она или нет сказать нельзя, не хватает контеста. Но и контекст не поможет, возможно запись запрещена, то значит это имя неправильное.
Anatoly Podgoretsky (2006-10-26 11:50:00) [26]
> Если память не изменяет, то в RxLib есть ф-ия, позоволяющая
> проверить введенное имя файла на наличие недопустимых символов.
>
Выбрось ее, она не достоверная.
Anatoly Podgoretsky (2006-10-26 11:49:00) [27]
> Это вроде раздел для начинающих ?
> Объясните пожалуйста.
А код где?
Сергей М. (2006-10-26 11:45:00) [28]
> Aleks © (26.10.06 11:20) [23]
TSaveDialog имеет точно такое же поле ручного ввода имени файла, что и в InputBox'е. Так что в этом плане разницы никакой.
> проще лишить возможности юзера совершать ошибку
Запрет ввода тех или иных символов еще не есть 100%-я "защита от дурака".
Юзер, к примеру, ввел 'C\MyFile.ext', недопустимые символы при этом отсутствуют, однако эта строка инвалидна.
Aleks (2006-10-26 11:20:00) [29]Из любопытства и, кроме того, всегда проще лишить возможности юзера совершать ошибку, чем потом её отлавливать.
Мне так кажется.
Сергей М. (2006-10-26 11:06:00) [30]
> Aleks © (26.10.06 11:02) [21]
А зачем ?
И (см.[2]) почему ты так найстойчив в желании лишить юзера удовольствия от использования TSaveDialog ?
Aleks (2006-10-26 11:02:00) [31]Спасибо большое.
Ещё вопрос если можно.
Как контролировать символы непосредственно во время их ввода в InputBox:
s:= InputBox('Íàçâàíèå ïðîôèëÿ','Ââåäèò ; ;å Èìÿ ïðîôèëÿ è íàæìèòå ÎÊ','') ;
Сергей М. (2006-10-26 10:49:00) [32]try
Memo1.Lines.SaveToFile('c:/'+s+'.txt');
except
// вот здесь ты и поймал ошибку
end;
Aleks (2006-10-26 10:47:00) [33]Примерно так
s:= InputBox('Íàçâàíèå ïðîôèëÿ','Ââåäèò ;å Èìÿ ïðîôèëÿ è íàæìèòå ÎÊ','') ;
Memo1.Lines.SaveToFile('c:/'+s+'.txt');
Amoeba (2006-10-26 10:34:00) [34]Если память не изменяет, то в RxLib есть ф-ия, позоволяющая проверить введенное имя файла на наличие недопустимых символов.
Сергей М. (2006-10-26 10:30:00) [35]
> Если б я знал где это ТУТ
Показывай как ты записываешь файл
Aleks (2006-10-26 10:23:00) [36]>Она возникает при попытки записать файл с недопустимым символом.
>Так вот тут ее и отлавливай
Если б я знал где это ТУТ, то глупых вопросов не задавал.
Это вроде раздел для начинающих ?
Объясните пожалуйста.
EvS (2006-10-26 10:13:00) [37]
> Она возникает при попытки записать файл с недопустимым символом.
Так вот тут ее и отлавливай
Aleks (2006-10-26 09:41:00) [38]Люди так подскажите где её эту ошибку ловить.
Она возникает при попытки записать файл с недопустимым символом.
Anatoly Podgoretsky (2006-10-26 07:48:00) [39]И главное все напрасно, решил что имя правильно и справедливо решил, а в момент создания получишь облом от ОС и зачем старался, не проще ли обработать ошибку?
Джо (2006-10-26 02:48:00) [40]Еще, вероятно, и от файловой системы зависит, что допустимо, а что нет.