Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 15.10.2008, 00:14   #11
AVer
Андрей
Форумчанин
 
Аватар для AVer
 
Регистрация: 21.11.2006
Сообщений: 457
По умолчанию

Копирует все мыла ил Memo в ListBox
Код:
Function EMailSymbol(C:Char):Boolean;
Type V = set of char;
Var V1:V;
Begin
V1:=['a'..'z','A'..'Z','.','@'];
EMailSymbol:=(C in V1);
End;

Function IsEmail(S:String):Boolean;
Var I:Integer;
    F:Boolean;
Begin
F:=True;
For I:=1 To Length(S) Do
If not EMailSymbol(S[I]) Then F:=False;
IsEmail:=F;
End;

procedure TForm1.Button1Click(Sender: TObject);
Var S,Buf:String;
    I,J:Integer;
begin
S:=Memo1.Text;
While Pos('@',S) <> 0 Do
 Begin
 Buf:='';
 I:=Pos('@',S);
 While EMailSymbol(S[I]) Do
 Inc(I);
 J:=I-1;
 I:=Pos('@',S);
 While EMailSymbol(S[I]) Do
 I:=I-1;
 Inc(I);
 Buf:=Copy(S,I,J);
 Delete(S,I,J);
 While Not IsEMail(Buf) Do
 Delete(Buf,Length(Buf),1);
 ListBox1.Items.Add(Buf);
 End;
end;
ICQ: 5311314
[SIGPIC][/SIGPIC]

Последний раз редактировалось AVer; 15.10.2008 в 00:19.
AVer вне форума Ответить с цитированием
Старый 15.10.2008, 09:10   #12
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

а мне интересно, а почему никто не вспомнил и не предложил использовать регулярные выражения?
например, TRegExpr library
Serge_Bliznykov вне форума Ответить с цитированием
Старый 15.10.2008, 15:58   #13
Черничный
Форумчанин
 
Регистрация: 27.01.2007
Сообщений: 293
По умолчанию

Цитата:
Сообщение от Роман Радер Посмотреть сообщение
а это с какой радости???
зачем два одинаковых выражения (s[i]<>'"') еще на and брать??
и второе, мож я не понял, но при чем тут кавычки?
это условия обрамления мыл в моем контексте! Это от вет человечку, который исходничек выложил выше
Черничный вне форума Ответить с цитированием
Старый 15.10.2008, 22:46   #14
Черничный
Форумчанин
 
Регистрация: 27.01.2007
Сообщений: 293
По умолчанию

Цитата:
Сообщение от AVer Посмотреть сообщение
Копирует все мыла ил Memo в ListBox
Код:
Function EMailSymbol(C:Char):Boolean;
Type V = set of char;
Var V1:V;
Begin
V1:=['a'..'z','A'..'Z','.','@'];
EMailSymbol:=(C in V1);
End;

Function IsEmail(S:String):Boolean;
Var I:Integer;
    F:Boolean;
Begin
F:=True;
For I:=1 To Length(S) Do
If not EMailSymbol(S[I]) Then F:=False;
IsEmail:=F;
End;

procedure TForm1.Button1Click(Sender: TObject);
Var S,Buf:String;
    I,J:Integer;
begin
S:=Memo1.Text;
While Pos('@',S) <> 0 Do
 Begin
 Buf:='';
 I:=Pos('@',S);
 While EMailSymbol(S[I]) Do
 Inc(I);
 J:=I-1;
 I:=Pos('@',S);
 While EMailSymbol(S[I]) Do
 I:=I-1;
 Inc(I);
 Buf:=Copy(S,I,J);
 Delete(S,I,J);
 While Not IsEMail(Buf) Do
 Delete(Buf,Length(Buf),1);
 ListBox1.Items.Add(Buf);
 End;
end;

на станичке с контактамаи на mail.ru (html код странички) проерил, на десятока два наврное ящиков вытащил всего два!
Черничный вне форума Ответить с цитированием
Старый 16.10.2008, 00:14   #15
AVer
Андрей
Форумчанин
 
Аватар для AVer
 
Регистрация: 21.11.2006
Сообщений: 457
По умолчанию

Моя задача подсказать решение, а не написать и отладить программу! Я и так сделал большую часть - тебе остается лишь найти ошибку.
ICQ: 5311314
[SIGPIC][/SIGPIC]
AVer вне форума Ответить с цитированием
Старый 16.10.2008, 08:31   #16
Johnson
кривокодер ;)
Форумчанин
 
Аватар для Johnson
 
Регистрация: 20.06.2008
Сообщений: 707
По умолчанию

А без дополнительных библиотек регулярные выражения не используются в дэльфи? На php когда писал парсер - поиск мыла занял 4 строки всего...
"А как написать праграму?, "ришыти задачьку очинь нада" ©с форума. Жить становится интереснее, жить становится веселее...
{Быть или не быть} {Неуспешный суицид}
Johnson вне форума Ответить с цитированием
Старый 16.10.2008, 09:13   #17
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от Johnson
А без дополнительных библиотек регулярные выражения не используются в дэльфи?
к сожалению, нет...
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Найти все целые числа,у которых ровно 6 делителей; jenja Общие вопросы C/C++ 3 03.10.2008 20:32
Найти все слова, отличающиеся от заданного на 1 букву и имеющую ту же длинну. gred Помощь студентам 5 23.05.2008 08:32
Паскаль. найти все числа кратные трем и посчитать их количество __k1ll3r__ Помощь студентам 6 02.04.2008 16:37
Найти все целочисленные решения уравнения 3x+4y=2z на заданном отрезке [L,R] Zmey_by_Nojabrsk Помощь студентам 3 18.10.2007 22:08