Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 23.03.2010, 20:20
maZaHaKa maZaHaKa вне форума
Прохожий
 
Регистрация: 12.03.2010
Сообщения: 13
Репутация: 10
Смущение Проверка email

Не могу сделать проверку правильности e-mail. Нужно хотя бы учесть символ "@"
Нашел этот код, но разобратся в нем не могу. Что и куда вставлять не понятно. Прошу помогите
Код HTML:
function IsValidEmail(const Value:string):boolean; function CheckAllowed(const s:string):boolean; var i: integer; begin Result:= false; for i:= 1 to Length(s) do begin if not (s[i] in ['a'..'z', 'A'..'Z', '0'..'9', '_', '-', '.']) then Exit; end; Result:= true; end; var i: integer; namePart, serverPart: string; begin Result:= false; i:= Pos('@', Value); if i = 0 then Exit; namePart:= Copy(Value, 1, i - 1); serverPart:= Copy(Value, i + 1, Length(Value)); if (Length(namePart) = 0) or ((Length(serverPart) < 5)) then Exit; i:= Pos('.', serverPart); if (i = 0) or (i > (Length(serverPart) - 2)) then Exit; Result:= CheckAllowed(namePart) and CheckAllowed(serverPart); end;
Ответить с цитированием
  #2  
Старый 23.03.2010, 20:57
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,096
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Ну и в чем проблема? Готовая функция. Вставляешь куда-нить в модуле, где собираешься ее вызывать. А далее:

Код:
procedure Buttin1Click(Sender : TObject);
begin
  If Not IsValidEmail(Edit1.Text)
    Then ShowMessage('email неправильный')
    Else // Здесь код использования
end;
Ответить с цитированием
  #3  
Старый 23.03.2010, 21:41
maZaHaKa maZaHaKa вне форума
Прохожий
 
Регистрация: 12.03.2010
Сообщения: 13
Репутация: 10
По умолчанию

Сделал кнопку кинул туда:
Код HTML:
procedure TForm1.Button7Click(Sender: TObject); begin If Not IsValidEmail(Edit2.Text) Then ShowMessage('email неправильный') Else button7.Click;; end; end;
Всю процедуру поместил в модуль edit2:
Код HTML:
procedure TForm1.Edit2Change(Sender: TObject); function IsValidEmail(const Value:string):boolean; function CheckAllowed(const s:string):boolean; var i: integer; begin Result:= false; for i:= 1 to Length(s) do begin if not (s[i] in ['a'..'z', 'A'..'Z', '0'..'9', '_', '-', '.']) then Exit; end; Result:= true; end; var i: integer; namePart, serverPart: string; begin Result:= false; i:= Pos('@', Value); if i = 0 then Exit; namePart:= Copy(Value, 1, i - 1); serverPart:= Copy(Value, i + 1, Length(Value)); if (Length(namePart) = 0) or ((Length(serverPart) < 5)) then Exit; i:= Pos('.', serverPart); if (i = 0) or (i > (Length(serverPart) - 2)) then Exit; Result:= CheckAllowed(namePart) and CheckAllowed(serverPart); end; end;

Пишет:
Код HTML:
[Error] Unit1.pas(242): BEGIN expected but END found

Последний раз редактировалось maZaHaKa, 23.03.2010 в 21:45.
Ответить с цитированием
  #4  
Старый 24.03.2010, 20:39
maZaHaKa maZaHaKa вне форума
Прохожий
 
Регистрация: 12.03.2010
Сообщения: 13
Репутация: 10
По умолчанию

Помогите
Ответить с цитированием
  #5  
Старый 24.03.2010, 21:52
Аватар для Admin
Admin Admin вне форума
Администратор
 
Регистрация: 03.10.2005
Адрес: Россия, Москва
Сообщения: 1,553
Версия Delphi: Delphi 7
Репутация: выкл
По умолчанию

Цитата:
Сообщение от maZaHaKa
Помогите
Код:
function CheckAllowed(const s:string):boolean;
var
  i: integer;
begin
  Result:= false;
  for i:= 1 to Length(s) do
  begin
    if not (s[i] in ['a'..'z', 'A'..'Z', '0'..'9', '_', '-', '.']) then
    Exit;
  end;
  Result:= true;
end;

function IsValidEmail(const Value:string):boolean;
var
  i: integer;
  namePart, serverPart: string;
begin
  Result:= false;
  i:= Pos('@', Value);
  if i = 0 then
    Exit;
  namePart:= Copy(Value, 1, i - 1);
  serverPart:= Copy(Value, i + 1, Length(Value));
  if (Length(namePart) = 0) or ((Length(serverPart) < 5)) then
    Exit;
  i:= Pos('.', serverPart);
  if (i = 0) or (i > (Length(serverPart) - 2)) then
    Exit;
  Result:= CheckAllowed(namePart) and CheckAllowed(serverPart);
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
 if not IsValidEmail(Edit2.Text)
 then ShowMessage('email неправильный')
 else button7.Click;
end;
Ответить с цитированием
  #6  
Старый 24.03.2010, 22:45
maZaHaKa maZaHaKa вне форума
Прохожий
 
Регистрация: 12.03.2010
Сообщения: 13
Репутация: 10
Восклицание

А теперь [Error] Unit1.pas(254): ';' expected but '.' found
Код HTML:
procedure TForm1.MaskEdit2Change(Sender: TObject); begin if (maskedit1.text='') or (maskedit2.text='') or (Edit2.text='') then label10.caption:='Заполните поля'; Button1.Enabled := Length(MaskEdit2.Text) > 3; if Button1.enabled=false then label10.caption:='Минимум 4 символа' else label10.caption:=''; end; procedure TForm1.Edit2Change(Sender: TObject); function CheckAllowed(const s:string):boolean; var i: integer; begin Result:= false; for i:= 1 to Length(s) do begin if not (s[i] in ['a'..'z', 'A'..'Z', '0'..'9', '_', '-', '.']) then Exit; end; Result:= true; end; function IsValidEmail(const Value:string):boolean; var i: integer; namePart, serverPart: string; begin Result:= false; i:= Pos('@', Value); if i = 0 then Exit; namePart:= Copy(Value, 1, i - 1); serverPart:= Copy(Value, i + 1, Length(Value)); if (Length(namePart) = 0) or ((Length(serverPart) < 5)) then Exit; i:= Pos('.', serverPart); if (i = 0) or (i > (Length(serverPart) - 2)) then Exit; Result:= CheckAllowed(namePart) and CheckAllowed(serverPart) end;
Ответить с цитированием
  #7  
Старый 24.03.2010, 22:52
Аватар для NIch
NIch NIch вне форума
Продвинутый
 
Регистрация: 02.06.2008
Адрес: Бендеры ПМР
Сообщения: 754
Репутация: 2446
По умолчанию

Код:
//----------------------------------------------------
procedure TForm1.MaskEdit2Change(Sender: TObject);
begin
if (maskedit1.text='') or (maskedit2.text='') or (Edit2.text='') then     label10.caption:='Заполните поля';
Button1.Enabled := Length(MaskEdit2.Text) > 3;
if Button1.enabled=false
 then label10.caption:='Минимум 4 символа'
        else label10.caption:='';
end;
//----------------------------------------------------
procedure TForm1.Edit2Change(Sender: TObject);//что это???
begin
 //Должно быть хотя бы так
end;
//----------------------------------------------------
function CheckAllowed(const s:string):boolean;
var
  i: integer;
begin
  Result:= false;
  for i:= 1 to Length(s) do
  begin
    if not (s[i] in ['a'..'z', 'A'..'Z', '0'..'9', '_', '-', '.']) then
    Exit;
  end;
  Result:= true;
end;
//----------------------------------------------------
function IsValidEmail(const Value:string):boolean;
var
  i: integer;
  namePart, serverPart: string;
begin
  Result:= false;
  i:= Pos('@', Value);
  if i = 0 then
    Exit;
  namePart:= Copy(Value, 1, i - 1);
  serverPart:= Copy(Value, i + 1, Length(Value));
  if (Length(namePart) = 0) or ((Length(serverPart) < 5)) then
    Exit;
  i:= Pos('.', serverPart);
  if (i = 0) or (i > (Length(serverPart) - 2)) then
    Exit;
  Result:= CheckAllowed(namePart) and CheckAllowed(serverPart)
end;
//----------------------------------------------------
__________________
В начале был Бит, потом Байт и только потом появилось Слово...
Ответить с цитированием
  #8  
Старый 24.03.2010, 22:58
maZaHaKa maZaHaKa вне форума
Прохожий
 
Регистрация: 12.03.2010
Сообщения: 13
Репутация: 10
По умолчанию

Все разобрался. Оказывается эти функции ненадо вставлять было в компоненты
Ответить с цитированием
  #9  
Старый 26.03.2010, 10:56
Аватар для friz
friz friz вне форума
Местный
 
Регистрация: 04.04.2008
Адрес: Минск
Сообщения: 596
Версия Delphi: 2007 & JAVA EE
Репутация: 10670
Смех даешь тему в юмор!

Сорри за оффтоп!

Цитата:
Сообщение от maZaHaKa
Сделал кнопку кинул туда:
Код HTML:
procedure TForm1.Button7Click(Sender: TObject); begin If Not IsValidEmail(Edit2.Text) Then ShowMessage('email неправильный') Else button7.Click;; end; end;
Что это за прога такая? этож бесконечный цикл!
Цитата:
Сообщение от maZaHaKa
Всю процедуру поместил в модуль edit2:
Код HTML:
procedure TForm1.Edit2Change(Sender: TObject); function IsValidEmail(const Value:string):boolean; function CheckAllowed(const s:string):boolean; var i: integer; begin Result:= false; ...................................
это вообще без комментариев
p.s. ДАЕШЬ ТЕМУ В ЮМОР!
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 03:39.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025