Доброго времени суток!!! Пишу программу для сайта mail.ru и возникла небольшая проблемка с кодом, мне нужно разбить строку вида: логин@домен:пароль на 3 части, соответственно на логин, домен и пароль... Толком ни чего не нашёл в интернете нужного, только обрывки, из чего и состряпал этот код... Подскажите плиз более разумный код, что бы все эти данные, заносились каждая в свою переменную!!! Вот мой код: Code: public email, pass, domen, hlam: string; Code: procedure TForm1.Button1Click(Sender: TObject); var temp: array[0..100] of string; P: Integer; S: String; begin explode(temp, '@', form1.edit1.text); email:=temp[0]; pass:=temp[1]; begin edit2.Text:=email; edit3.Text:=pass; begin explode(temp, ':', form1.edit1.text); hlam:=temp[0]; domen:=temp[1]; edit4.Text:=domen; begin S := Edit3.Text; P := Pos(':', S); Edit3.Text := Copy(S, 0, P-1); end; end; end; end;
form1.sedit1.text содержит строку [email protected]: pass (без пробела, просто тут смайлик получается) name:=copy(form1.sedit1.text,0,pos('@',form1.sedit1.text)-1); domen:=copy(form1.sedit1.text,pos('@',form1.sedit1.text)+1,pos(':',form1.sedit1.text)-1); pass:=copy(form1.sedit1.text,pos(':',form1.sedit1.text)+1,length(form1.sedit1.text));
Чтобы это не было быдлокодом, как вы правильно охарактеризовали данный кусок текста, можно заюзать стандартную функцию ExtractStrings - документация по ссылке http://delphi.about.com/library/rtl/blrtlExtractStrings.htm Но лучше все-таки писать на языках, где такие вещи делаются в одну короткую строку и без вопросов (это я на Python намекаю).