![]() |
Модераторы: Partizan, gambit |
![]() ![]() ![]() |
|
diadiavova |
|
|||
![]() Доктор Зло(диагност, настоящий, с лицензией и полномочиями) ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5821 Регистрация: 14.8.2008 Где: В Коньфпольте Репутация: 31 Всего: 142 |
Вот! Можно, конечно спецификацию изучить ![]() ![]() Я уже не говорю о том, что чем сложнее регексп, тем труднее контролировать его поведение, а уж о степени читабельности так и говорить нет смысла. В любом случае, если есть возможность воспользоваться готовым прибамбасом, то надо им воспользоваться. По крайней мере будет гарантия, что там всё учтено, включая неизвестные тебе особенности спецификации URL . А когда речь о нестандартном формате, то конечно. Что касается адреса без указания протокола, то тут всё просто, перед проверкой надо с чего начинается строка адреса
Но лучше такую проверку осуществлять перед передачей значения в функцию (добавлять протокол в текстбокс при валидации). -------------------- Хочешь получить мудрый совет - читай подписи участников форумов. Злой доктор Щасзаболит ![]() |
|||
|
||||
myendlessness |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 113 Регистрация: 8.8.2008 Репутация: нет Всего: нет |
вот простой пример если я пишу ftp://mail или ftp://mail.5ru то есть заведомо неправильно, то IsCorrectFtpAddress пропускает, а регулярные выражения выдают ошибку, то есть это подтверждает, что они более гибкие и если правильно их составить, то и более надёжные, хотя это и логично
![]() Добавлено через 3 минуты и 54 секунды 2 diadiavova Дело в том, что ftp:// сразу находится в TextBox при загрузке, то есть "TextBox.text=ftp://" это такая своеобразная подсказка, чтобы изначально не сделали ошибок хотя бы в этом |
|||
|
||||
diadiavova |
|
|||
![]() Доктор Зло(диагност, настоящий, с лицензией и полномочиями) ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5821 Регистрация: 14.8.2008 Где: В Коньфпольте Репутация: 31 Всего: 142 |
Ну дык ить...кто бы спорил...так это ж если правильно. Добавлено через 4 минуты и 4 секунды
Ну вот ты знаешь, что это заведомо неправильно, а вот для меня это новость. Я не знаю, какие адреса правильные, а какие нет. С другой стороны, что толку если человек введёт корректный, но никуда не ведущий адрес? ![]() Добавлено через 5 минут и 15 секунд Ну ясно, тема ведь называется "Защита от..." ![]() -------------------- Хочешь получить мудрый совет - читай подписи участников форумов. Злой доктор Щасзаболит ![]() |
|||
|
||||
myendlessness |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 113 Регистрация: 8.8.2008 Репутация: нет Всего: нет |
2 diadiavova
Ну вот ты знаешь, что это заведомо неправильно, а вот для меня это новость. Я не знаю, какие адреса правильные, а какие нет. С другой стороны, что толку если человек введёт корректный, но никуда не ведущий адрес? От всех дураков обезопасить просто невозможно ![]() ![]() Я хотел спросить как сделать так, чтобы если одна форма запущена, то нельзя было переключится на другую пока не закроешь запущенную? |
|||
|
||||
diadiavova |
|
|||
![]() Доктор Зло(диагност, настоящий, с лицензией и полномочиями) ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5821 Регистрация: 14.8.2008 Где: В Коньфпольте Репутация: 31 Всего: 142 |
"Запущенную" надо запускать при помощи метода ShowDialog (а не Show) -------------------- Хочешь получить мудрый совет - читай подписи участников форумов. Злой доктор Щасзаболит ![]() |
|||
|
||||
myendlessness |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 113 Регистрация: 8.8.2008 Репутация: нет Всего: нет |
Здорово, спасибо Вам за ответы
![]() В развитии темы хотел продолжить, вот скажите человек заносит адрес сервера, дальше надо его запомнить, чтобы при следующей загрузке не надо было заносить ещё раз тоже самое. Как запомнить адрес? Самый простой записать в файл! А когда много всяких параметров, и сохраняются в разное время, то как быть? Либо создавать для каждого параметра свой файл, либо хранить в одном, но как-то его структурировать! А есть ли другие сопсобы сохранения данных? |
|||
|
||||
Raistlin |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 42 Регистрация: 19.5.2009 Репутация: нет Всего: нет |
Идешь в свойства проекта (Alt-F7), там переходишь на вкладку Settings. Потом читаешь MSDN насчет Properties.Settings. |
|||
|
||||
diadiavova |
|
|||
![]() Доктор Зло(диагност, настоящий, с лицензией и полномочиями) ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5821 Регистрация: 14.8.2008 Где: В Коньфпольте Репутация: 31 Всего: 142 |
Конечно. Первое, что приходит в голову - база данных. Но если данных не очень много, то можно и более простые средства использовать: XML - файл, настройки программы(Application Settings), последний вариант особенно удобно использовать если надо сохранять состояние элементов управления(например текст в текстбоксе), в этом случае можно всё организовать без единой строчки ручного кода, но даже для хранения других данных ручной код при использовании этого инструмента сильно упростится. http://msdn.microsoft.com/ru-ru/library/k4s6c3a0.aspx Это сообщение отредактировал(а) diadiavova - 17.7.2009, 11:19 -------------------- Хочешь получить мудрый совет - читай подписи участников форумов. Злой доктор Щасзаболит ![]() |
|||
|
||||
myendlessness |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 113 Регистрация: 8.8.2008 Репутация: нет Всего: нет |
Спасибо за рекомендации, буду разбираться!
Хотел уточнить как потом сбрасывать ErrorProvider, если вначале человек ошибся, а затем набрал правильно, то как удалить этот красный кружочек? Думал ErrorProvider.Clear но что-то ничего не убирается. Почитал о членах класса, тоже ничего другого не нашёл. |
|||
|
||||
diadiavova |
|
|||
![]() Доктор Зло(диагност, настоящий, с лицензией и полномочиями) ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5821 Регистрация: 14.8.2008 Где: В Коньфпольте Репутация: 31 Всего: 142 |
Так же как и устанавливать, только пустую строку передать ему надо в качестве текста сообщения. -------------------- Хочешь получить мудрый совет - читай подписи участников форумов. Злой доктор Щасзаболит ![]() |
|||
|
||||
SKrivosein |
|
|||
![]() Идущий в даль ![]() ![]() Профиль Группа: Участник Сообщений: 271 Регистрация: 9.6.2007 Где: Praha - Прага Репутация: 4 Всего: 8 |
Если у тебя все правильно написано то вобще по идее делать не чего не надо.
Когда пользователь исправит свой текст и идет дальше, то фокус уходит с текстбокса и срабатывает событие validating которое и уберёт значёк. Разве что ты то в коде что-то поменял, то тогда руками убрать.
P.S. diadiavova я кстати незнал что IsCorrectFtpAddress делает, или так где-то читал но забыл...так же спасибо за напоминание. А по поводу что лучше, так это дело относительное. Я держусь точки зрения буддизма: "все цветы совершенны !" Это сообщение отредактировал(а) SKrivosein - 17.7.2009, 14:04 |
|||
|
||||
diadiavova |
|
|||
![]() Доктор Зло(диагност, настоящий, с лицензией и полномочиями) ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5821 Регистрация: 14.8.2008 Где: В Коньфпольте Репутация: 31 Всего: 142 |
Хочу обратить твоё внимание, что IsCorrectFtpAddress - это имя метода, придуманное мною лично для этой темы, но в нём использован метод IsWellFormedUriString, класса URI. Ну я вроде как аргументировал. Удобство в нашем деле тоже не последний аргумент. Даже если проверять нестандартную строку, то регексп ИМХО всё равно лучше обернуть для удобства. ![]() -------------------- Хочешь получить мудрый совет - читай подписи участников форумов. Злой доктор Щасзаболит ![]() |
|||
|
||||
myendlessness |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 113 Регистрация: 8.8.2008 Репутация: нет Всего: нет |
Вот мой код, однако всё равно не убирает красный кружочек, даже когда правильно всё прописываю в TextBox? |
|||
|
||||
myendlessness |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 113 Регистрация: 8.8.2008 Репутация: нет Всего: нет |
И ещё вопрос
![]() |
|||
|
||||
diadiavova |
|
|||
![]() Доктор Зло(диагност, настоящий, с лицензией и полномочиями) ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5821 Регистрация: 14.8.2008 Где: В Коньфпольте Репутация: 31 Всего: 142 |
Что это значит? Если ты связал свойство Text текстбокса с параметром, то значение этого свойства будет сохраняться даже после закрытия приложения. Для того, чтобы его сменить, надо просто в текстбоксе написать другую строку. -------------------- Хочешь получить мудрый совет - читай подписи участников форумов. Злой доктор Щасзаболит ![]() |
|||
|
||||
![]() ![]() ![]() |
Прежде чем создать тему, посмотрите сюда: | |
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :) Так же не забывайте отмечать свой вопрос решенным, если он таковым является :) Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |