Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.91/11: Рейтинг темы: голосов - 11, средняя оценка - 4.91
0 / 0 / 0
Регистрация: 12.12.2013
Сообщений: 10

Разработать программу, которая вводит адрес электронной почты и проверяет синтаксис введенного адреса. Результат проверки выводится в виде сообщения

25.12.2013, 16:48. Показов 2380. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Домен не может заканчиваться дефисом. Например, недопустим адрес: p_pg@m12-.it.mail.ru
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
25.12.2013, 16:48
Ответы с готовыми решениями:

Разработать программу, которая вводит адрес электронной почты и проверяет синтаксис введенного адреса. Результат проверки выводится в виде сообщения
Дефис в доменном имени может быть только одиночным. Например, недопустим адрес: p_pg@m12.i--t.pochta.ru # include...

Разработать программу, которая вводит адрес электронной почты и проверяет синтаксис введенного адреса
В имени пользователя могут быть только следующие символы: буквы латинского алфавита, цифры, дефис (-), подчеркивание (_), точка (.),...

В 1С 7.7 написать программу проверки правильности ввода адреса электронной почты
В 1С 7.7 написать программу проверки правильности ввода адреса электронной почты.

7
 Аватар для Kulgar
511 / 196 / 26
Регистрация: 07.08.2013
Сообщений: 814
25.12.2013, 17:06
Цитата Сообщение от Vadres9 Посмотреть сообщение
Домен не может заканчиваться дефисом. Например, недопустим адрес: p_pg@m12-.it.mail.ru
С чем у Вас возникли сложности?
0
0 / 0 / 0
Регистрация: 12.12.2013
Сообщений: 10
25.12.2013, 17:13  [ТС]
нужно ввести что последний элемент домена не равнялся "-".Чего то не получается.
кое как написал прогу которая проверяет на корректность логина.
я только учусь что так нужна помощь
0
 Аватар для Kulgar
511 / 196 / 26
Регистрация: 07.08.2013
Сообщений: 814
25.12.2013, 17:14
Vadres9, какой Вы видете помощь Вам исходя из предоставленной Вами информации?
0
0 / 0 / 0
Регистрация: 12.12.2013
Сообщений: 10
25.12.2013, 17:21  [ТС]
желательно написать весь код для C++ Builder
0
 Аватар для Kulgar
511 / 196 / 26
Регистрация: 07.08.2013
Сообщений: 814
25.12.2013, 17:25
Vadres9, так Вы мало чему научитесь. Выкладывайте свои наработки, получайте ценные указания, верные ссылки, изучайте материал, набирайте опыт, завоёвыйвайте бонусы, заводите друзей. Освободите Калимдор!
0
91 / 91 / 22
Регистрация: 02.07.2013
Сообщений: 332
25.12.2013, 17:31
Vadres9,
1) разбей исходную строку адреса на подстроки, ориентируясь на разделители '@.';
2) каждую из полученных строк проверь на корректность [чтобы начиналась с буквы, не содержала запрещённых символов, типа '%;:^', заканчивалась бы буквой или цифрой];
3) если все строки проходят проверку - адрес правильный, иначе - нет.
0
place status here
 Аватар для gunslinger
3186 / 2220 / 640
Регистрация: 20.07.2013
Сообщений: 6,008
26.12.2013, 21:18
В общем случае, если разбираешься в регулярных выражениях (и "понимаешь" Дельфи ака Паскаль), то пример проверки корректности email'а можешь по[д]смотреть здесь (см. последнюю функцию DecorateEMails, далее обрати внимание на константу MailTemplate):
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
{$B-}
unit HyperLinksDecorator;
 
{
 
 Functions to 'decorate' hyper-links
   (search for URLs and e-mails and replace 
    them with appropriate HTML-links).
 Uses TRegExpr library.
 
 (c) 2002 Andrey V. Sorokin, Saint Petersburg, Russia
  mailto:anso@mail.ru
  [url]http://www.RegExpStudio.com[/url]
 
 v. 0.101 2002.08.30 
  -=- (-) Missed closing tag </a>
 
 Note:
  This functions have to be optimized - they construct result strings
  with step by step concatenation that can take a lot of resources while
  processing big input texts with many hyper links.
 
}
 
interface
 
uses
 RegExpr;
 
type
TDecorateURLsFlags = (
 // describes, which parts of hyper-link must be included
 // into VISIBLE part of the link:
  durlProto, // Protocol (like 'ftp://' or 'http://')
  durlAddr,  // TCP address or domain name (like 'RegExpStudio.com')
  durlPort,  // Port number if specified (like ':8080')
  durlPath,  // Path to document (like 'index.html')
  durlBMark, // Book mark (like '#mark')
  durlParam  // URL params (like '?ID=2&User=13')
 );
 
TDecorateURLsFlagSet = set of TDecorateURLsFlags;
 
 
function DecorateURLs (
 // can find hyper links like 'http://...' or 'ftp://..'
 // as well as links without protocol, but start with 'www.'
 
 const AText : string;
 // Input text to find hyper-links
 
  AFlags : TDecorateURLsFlagSet = [durlAddr, durlPath]
 // Which part of hyper-links found must be included into visible
 // part of URL, for example if [durlAddr] then hyper link
 // 'www.RegExpStudio.com/contacts.html' will be decorated as
 // '<a href="http://www.RegExpStudio.com/contacts.html">www.RegExpStudio.com</a>'
 
  ) : string;
 // Returns input text with decorated hyper links
 
 
function DecorateEMails (
 // Replaces all syntax correct e-mails
 // with '<a href="mailto:ADDR">ADDR</a>'
 // For example, replaces 'anso@mail.ru'
 // with '<a href="mailto:anso@mail.ru">anso@mail.ru</a>'.
 
 const AText : string
 // Input text to find e-mails
 
  ) : string;
 // Returns input text with decorated e-mails
 
 
implementation
 
uses
 SysUtils; // we are using AnsiCompareText
 
function DecorateURLs (const AText : string;
  AFlags : TDecorateURLsFlagSet = [durlAddr, durlPath]
  ) : string; 
const 
  URLTemplate = 
   '(?i)' 
   + '(' 
   + '(FTP|HTTP)://'             // Protocol 
   + '|www\.)'                   // trick to catch links without
                                 // protocol - by detecting of starting 'www.'
   + '([\w\d\-]+(\.[\w\d\-]+)+)' // TCP addr or domain name
   + '(:\d\d?\d?\d?\d?)?'        // port number
   + '(((/[%+\w\d\-\\\.]*)+)*)'  // unix path
   + '(\?[^\s=&]+=[^\s=&]+(&[^\s=&]+=[^\s=&]+)*)?'
                                 // request (GET) params
   + '(#[\w\d\-%+]+)?';          // bookmark
var
  PrevPos : integer;
  s, Proto, Addr, HRef : string;
begin
  Result := ''; 
  PrevPos := 1; 
  with TRegExpr.Create do try 
     Expression := URLTemplate; 
     if Exec (AText) then 
      REPEAT 
        s := ''; 
        if AnsiCompareText (Match [1], 'www.') = 0 then begin
           Proto := 'http://';
           Addr := Match [1] + Match [3];
           HRef := Proto + Match [0];
          end
         else begin
           Proto := Match [1];
           Addr := Match [3];
           HRef := Match [0];
          end;
        if durlProto in AFlags
         then s := s + Proto;
        if durlAddr in AFlags
         then s := s + Addr;
        if durlPort in AFlags
         then s := s + Match [5];
        if durlPath in AFlags
         then s := s + Match [6];
        if durlParam in AFlags
         then s := s + Match [9];
        if durlBMark in AFlags
         then s := s + Match [11];
        Result := Result + System.Copy (AText, PrevPos,
         MatchPos [0] - PrevPos) + '<a href="' + HRef + '">' + s + '</a>'; //###0.101
        PrevPos := MatchPos [0] + MatchLen [0];
      UNTIL not ExecNext;
     Result := Result + System.Copy (AText, PrevPos, MaxInt); // Tail
    finally Free;
   end;
end; { of function DecorateURLs
--------------------------------------------------------------}
 
function DecorateEMails (const AText : string) : string;
 const
  MailTemplate =
   '[_a-zA-Z\d\-\.]+@[_a-zA-Z\d\-]+(\.[_a-zA-Z\d\-]+)+';
 var
  PrevPos : integer;
 begin
  Result := '';
  PrevPos := 1;
  with TRegExpr.Create do try
     Expression := MailTemplate;
     if Exec (AText) then
      REPEAT
        Result := Result + System.Copy (AText, PrevPos,
         MatchPos [0] - PrevPos) + '<a href="mailto:' + Match [0] + '">' + Match [0] + '</a>';
        PrevPos := MatchPos [0] + MatchLen [0];
      UNTIL not ExecNext;
     Result := Result + System.Copy (AText, PrevPos, MaxInt); // Tail
    finally Free;
   end;
 end; { of function DecorateEMails
--------------------------------------------------------------}
 
 
end.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
26.12.2013, 21:18
Помогаю со студенческими работами здесь

Нет текста сообщения и адреса электронной почты
Добрый день! Такая проблема ... в Хроме, Яндекс-браузере все работает (запросы с сайта приходят) в IE и в mozilla что то не так - ...

Напишите программу, которая считывает IPv4 адрес и проверяет ее валидность. Форма записи IPv4 адреса – x.x.x.x
Напишите код для программы Пример: Напишите программу, которая считывает IPv4 адрес и проверяет ее валидность. Форма записи IPv4 адреса...

Написать программу, которая проверяет, принадлежит ли точка (x,y) закрашенной области (x, y и при необходимости R вводит
Помогите с программой

Написать программу, которая проверяет, представляют ли элементы введенного с клавиатуры массива
Написать программу, которая проверяет, представляют ли элементы введенного с клавиатуры массива из 7 вещественных чисел убывающую...

Проверка адреса электронной почты
Друзья, всем привет! Стоит задача перед отправкой сообщения проверить существование электронного адреса. Не нужно путать с...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Ниже машинный перевод статьи The Thinkpad X220 Tablet is the best budget school laptop period . Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы,. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru