[Delphi] Помогите оптимизировать мой быдлокод

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by StormQD, 20 May 2013.

Thread Status:
Not open for further replies.
  1. StormQD

    StormQD New Member

    Joined:
    15 Aug 2011
    Messages:
    5
    Likes Received:
    0
    Reputations:
    0
    Доброго времени суток!!! Пишу программу для сайта 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;
     
  2. sms-seller

    sms-seller New Member

    Joined:
    13 Feb 2013
    Messages:
    0
    Likes Received:
    0
    Reputations:
    0
    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));
     
    #2 sms-seller, 20 May 2013
    Last edited: 20 May 2013
  3. StormQD

    StormQD New Member

    Joined:
    15 Aug 2011
    Messages:
    5
    Likes Received:
    0
    Reputations:
    0
    В Domen после двоеточия пароль не удаляется и записывается, как: домен:пароль...
     
  4. Eich3

    Eich3 Member

    Joined:
    27 Jan 2013
    Messages:
    22
    Likes Received:
    7
    Reputations:
    5
    Чтобы это не было быдлокодом, как вы правильно охарактеризовали данный кусок текста, можно заюзать стандартную функцию ExtractStrings - документация по ссылке http://delphi.about.com/library/rtl/blrtlExtractStrings.htm

    Но лучше все-таки писать на языках, где такие вещи делаются в одну короткую строку и без вопросов (это я на Python намекаю).
     
Thread Status:
Not open for further replies.