[2 days left] What’s wrong with your cloud strategy? Learn why multicloud solutions matter with Nimble Storage.Register Now

x
?
Solved

optimizing code

Posted on 2001-07-31
5
Medium Priority
?
203 Views
Last Modified: 2010-04-06
can someone help me tell me how to optimize this code ?

(this is just a test, trying to wrap some IRC command)
:)


procedure TForm1.Button1Click(Sender: TObject);
var
Position1,Position2: Integer;
nick,command, temp : string;

begin
  nick := ':Berzerk1!~Berzerk1@ti13a80-0306.bb.online.no JOIN :#skien';
  temp := nick;
  command := temp;
  delete(temp,1,lastdelimiter(':',temp));
  delete(command,1,pos(' ',command));
  delete(command,pos(' ',command),length(command));
  Position1 := Pos(':',nick) + 1;
  Position2 := Pos('!',nick);
  nick := Copy(nick,Position1, Position2 - Position1);
  ShowMessage(nick + ':' + temp + '+' + command);
end;
0
Comment
Question by:joepezt
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 3
5 Comments
 
LVL 6

Accepted Solution

by:
MannSoft earned 150 total points
ID: 6338915
Here is some shorter code:

S := 'Berzerk1!~Berzerk1@ti13a80-0306.bb.online.no JOIN :#skien'
Nick := Copy(S, 1, Pos('!', S) - 1);
Delete(S, Pos(' ', S);
Command := Copy(S, 1, Pos(' ', S) - 1);
Delete(S, Pos(' ', S + 1);
Channel := S;

Of course that will only work specifically for the JOIN command.  I wrote an IRC program awhile ago.  Here is how I handled server messages (just ignore if you are not interested in writing a client of your own :-) )

1) I called a function that split the string into a TStringList (split at each space of course).
2) I checked element 1 to see what the command/numeric was
3) I called another function to combine the last X elements of the stringlist.  The value of X depended on which command/numeric it was.  The leading : was also stripped by this function
4) If required, I called yet another function with element 0 as a paramter, and it returned everything up to the ! (to get the nick of the sender)

By using functions for these things it helps seperate your code and (IMO) makes things much easier to work with.
0
 
LVL 14

Expert Comment

by:DragonSlayer
ID: 6339092
Umm...

procedure Test(InputString: string);
var
  StringList: TStringList;
  Nick, Command, Channel: string;
begin
  InputString := StringReplace(InputString,
    ' ', #13, [rfReplaceAll]);
  InputString := StringReplace(InputString,
    '!', #13, [rfReplaceAll]);
  StringList := TStringList.Create;
  try
    StringList.Text := InputString;
    Nick := StringList.Strings[0];
    Command := StringList.Strings[2];
    Channel := StringList.Strings[3];
  finally
    StringList.Free;
  end;
end;


:)
0
 
LVL 2

Author Comment

by:joepezt
ID: 6340064
will test some of these :)

i have an open source IRC component i was starting on a while ago, http://www.berzerk.net


but some of you might know more about this thing ?

http://www.delphi3d.net/articles/viewarticle.php?article=console.htm



0
 
LVL 2

Author Comment

by:joepezt
ID: 6340261
will test some of these :)

i have an open source IRC component i was starting on a while ago, http://www.berzerk.net


but some of you might know more about this thing ?

http://www.delphi3d.net/articles/viewarticle.php?article=console.htm



0
 
LVL 2

Author Comment

by:joepezt
ID: 6375139
nice ..
well, if you are interrested, you CAN if you want to check out the component i made..

http://vortex.berzerk.net
0

Featured Post

Enroll in October's Free Course of the Month

Do you work with and analyze data? Enroll in October's Course of the Month for 7+ hours of SQL training, allowing you to quickly and efficiently store or retrieve data. It's free for Premium Members, Team Accounts, and Qualified Experts!

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

The uses clause is one of those things that just tends to grow and grow. Most of the time this is in the main form, as it's from this form that all others are called. If you have a big application (including many forms), the uses clause in the in…
Hello everybody This Article will show you how to validate number with TEdit control, What's the TEdit control? TEdit is a standard Windows edit control on a form, it allows to user to write, read and copy/paste single line of text. Usua…
Video by: ITPro.TV
In this episode Don builds upon the troubleshooting techniques by demonstrating how to properly monitor a vSphere deployment to detect problems before they occur. He begins the show using tools found within the vSphere suite as ends the show demonst…
This is my first video review of Microsoft Bookings, I will be doing a part two with a bit more information, but wanted to get this out to you folks.
Suggested Courses

649 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question