Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Где запретить недопустимые символы в имени файла


Страницы:   1 2 3

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]

Еще, вероятно, и от файловой системы зависит, что допустимо, а что нет.


Страницы:   1 2 3

Наверх

Титульная страница Поиск, карта сайта Написать письмо