![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Корректность имени файла. Как проверить? [D7]
CaptainAlex © (2005-10-18 13:07:00)Вводит нам пользователь имя файла в TEdit и говорит - а создай-ка мне такой файл. Есть ли стандартные средства для проверки его (имени) корректности.
begin...end (2005-10-18 18:53:00) [21]> CaptainAlex (18.10.05 17:44) [5]
"У меня от Вас появляются седые волосы"
(с) моя школьная учительница физики
:-)
Fay (2005-10-18 18:52:00) [22]2 CaptainAlex (18.10.05 17:44) [5]
Из приведённого кода следует, чтоKeyможет иметь несколько значений одновременно.
Странно это очень.
И как возникла такая необходимость делатьспеременной?
CaptainAlex (2005-10-18 18:21:00) [23]Ну так с самого начала и спрашивал про стандартное решение...
Gugle (2005-10-18 18:05:00) [24]А не проще в SaveDialog поставить ofNoValidate = true ?!?
Зачем такие проблемы если есть все стандартное?
Джо (2005-10-18 18:05:00) [25]ЗЫ. Если на то пошло, слышал о set'ах?
Джо (2005-10-18 18:04:00) [26]
> [7] CaptainAlex (18.10.05 17:56)
Тогда причем здесь "корректность имени файла" в постановке вопроса?
CaptainAlex (2005-10-18 17:56:00) [27]
> 8-()
> Кстати, а почто обидел + ~ - ( ) и прочие?
У меня это имя программы в скрипте кроме прочего. Так что в моем случае это нужно именно в этом виде.А если говорить за имя файла в файловой системе, то таки да, треть символов из списка нужно исключить.
Джо (2005-10-18 17:47:00) [28]
> [5] CaptainAlex (18.10.05 17:44)
> вот так сделал пока:
8-()
Кстати, а почто обидел + ~ - ( ) и прочие?
CaptainAlex (2005-10-18 17:44:00) [29]вот так сделал пока:
procedure TfrmProject.edtProjectNameKeyPress(Sender: TObject;
var Key: Char);
var
c: char;
begin
c := chr(0);
if Key = '.' then Key := c;
if Key = ';' then Key := c;
if Key = ':' then Key := c;
if Key = '/' then Key := c;
if Key = '\' then Key := c;
if Key = '$' then Key := c;
if Key = '%' then Key := c;
if Key = '@' then Key := c;
if Key = '!' then Key := c;
if Key = '?' then Key := c;
if Key = '*' then Key := c;
if Key = '^' then Key := c;
if Key = '&' then Key := c;
if Key = '(' then Key := c;
if Key = ')' then Key := c;
if Key = '-' then Key := c;
if Key = '=' then Key := c;
if Key = '+' then Key := c;
if Key = '[' then Key := c;
if Key = ']' then Key := c;
if Key = '{' then Key := c;
if Key = '}' then Key := c;
if Key = '''' then Key := c;
if Key = '"' then Key := c;
if Key = ' ' then Key := c;
if Key = '#' then Key := c;
if Key = '`' then Key := c;
if Key = '~' then Key := c;
if Key = '' then Key := c;
if Key = ',' then Key := c;
end;
Ega23 (2005-10-18 13:48:00) [30]2 Loginov Dmitry © (18.10.05 13:26) [3]
> Можно например так проверить:
Иногда лучше жевать, чем говорить
Loginov Dmitry (2005-10-18 13:26:00) [31]Можно например так проверить:
for I := 1 to Length(Edit1.Text) do
if Edit1.Text[I] in ['\', '/', ':' и т.д.] then
Halt();
Andy BitOff (2005-10-18 13:21:00) [32]Да был уже такой вопрос, давано правда, растянули там тягомотину всякую.
По сабжу, возьми и создай файл. Будет ошибка, проверь какая и все. Если ошибки нет, значит все чики-пуки.
Ega23 (2005-10-18 13:15:00) [33]А что значит корректность?
Имя \\DBSrv\Data\test1.txt - корректно или нет?