Solved

strip codes from a mIRC log

Posted on 2002-07-05
2
341 Views
Last Modified: 2012-05-04
hi!, i want to erase any mIRC color codes and or bold reverse underlined... as well.

I need a function which returns the line without any codes...


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
2 Comments
 
LVL 3

Accepted Solution

by:
raidos earned 20 total points
ID: 7132238
I wrote this function in a jiffy, there may be nasty bugs in it but it seems to work...didn't test it much though..

Function StripControlCodes(InStr: String): String;
Var
  ColorLen, Loop, Delta, InStrLen : Integer;

Function StripColors: Integer;
Var
  PassedComma, StillColor: Boolean;
Begin
  Result := 1;
  StillColor := TRUE;
  PassedComma := FALSE;
  While StillColor Do Begin
    Inc(Loop);
    If InStrLen >= Loop Then Begin
      If (InStr[Loop] In ['0'..'9']) OR ((InStr[Loop] = ',') And Not PassedComma) Then Begin
        If InStr[Loop] = ',' Then
          PassedComma := TRUE;
        Inc(Result);

      End Else
        StillColor := FALSE;
    End Else
      StillColor := FALSE;
  End;
End;

Begin
  InStrLen := Length(InStr);
  SetLength(Result, InStrLen);
  Loop := 1;
  Delta := 0;
  While Loop <= InStrLen Do Begin
    Case InStr[Loop] Of
      #3: Begin
        ColorLen := StripColors;
        Inc(Delta, ColorLen);
      End;
      #2, #$F, #$16, #$1F: Begin
        Inc(Delta);
        Inc(Loop);
      End;
      Else Begin
        Result[Loop-Delta] := InStr[Loop];
        Inc(Loop);
      End;
    End;
  End;
  SetLength(Result, Loop-(Delta+1));
End;

Regards
//raidos
0
 

Expert Comment

by:d32coder
ID: 7132301
mIRC has a checkbox to strip codes automatically, look in options.

Don
0

Featured Post

[Webinar] Learn How Hackers Steal Your Credentials

Do You Know How Hackers Steal Your Credentials? Join us and Skyport Systems to learn how hackers steal your credentials and why Active Directory must be secure to stop them. Thursday, July 13, 2017 10:00 A.M. PDT

Question has a verified solution.

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

A lot of questions regard threads in Delphi.   One of the more specific questions is how to show progress of the thread.   Updating a progressbar from inside a thread is a mistake. A solution to this would be to send a synchronized message to the…
Introduction Raise your hands if you were as upset with FireMonkey as I was when I discovered that there was no TListview.  I use TListView in almost all of my applications I've written, and I was not going to compromise by resorting to TStringGrid…
Michael from AdRem Software explains how to view the most utilized and worst performing nodes in your network, by accessing the Top Charts view in NetCrunch network monitor (https://www.adremsoft.com/). Top Charts is a view in which you can set seve…
This tutorial will teach you the special effect of super speed similar to the fictional character Wally West aka "The Flash" After Shake : http://www.videocopilot.net/presets/after_shake/ All lightning effects with instructions : http://www.mediaf…
Suggested Courses
Course of the Month4 days, 11 hours left to enroll

636 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