strip codes from a mIRC log

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...


LVL 2
joepeztAsked:
Who is Participating?
 
raidosConnect With a Mentor Commented:
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
 
d32coderCommented:
mIRC has a checkbox to strip codes automatically, look in options.

Don
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.