Still celebrating National IT Professionals Day with 3 months of free Premium Membership. Use Code ITDAY17

x
Solved

# strip codes from a mIRC log

Posted on 2002-07-05
Medium Priority
343 Views
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
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

LVL 3

Accepted Solution

raidos earned 60 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

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

Don
0

## Featured Post

Question has a verified solution.

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