Mit diesem Script können Gruppennamen auf verschienene Weise gekürtzt oder nach eigenem Wunsch umbenannt werden. Desweiteren können alle oder nur ein Server(-name) ausgeblendet werden.
Dieses Script ist (noch) nicht als INCLUDE-File erhältlich und ersetzt das originale OnNewsgroupListPaint.
{*******************************************************************************
* OnNewsgroupListPaint 3.4.7 *
* OnNewsgroupListPaint *
*******************************************************************************}
Program OnNewsgroupListPaint;
Const
{------------------------------------------------------------------------------}
{ Anwenderspezifische Einstellungen }
{------------------------------------------------------------------------------}
//--[ GRUPPEN ]-----------------------------------------------------------------
RenameGroups = False; // Setze die Einstellung auf "True", wenn du die Gruppen umbenennen möchtest
ShortenGroupNames = False; // Setze die Einstellung auf "True", wenn du die Gruppennamen kürzen möchtest
// z.B. de.comm.software.40tude-dialog -> d.c.s.40tude-dialog
// Folgende Einstellungen sind nur gültig, wenn ShortenGroupNames auf "True" gesetzt ist
GroupsExclude = 'hamster,dialog'; // Wenn du Gruppen von der Umbenennung ausschließen möchtest
// gib hier die Gruppen oder auch Namensteile davon ein
// Mehrere Einträge werden nur durch einen ',' getrennt
// sonst nichts!
CompleteShort = False; // Setze die Einstellung auf "True", wenn die Gruppennamen total gekürtzt werden sollen
// z.B: de.comm.software.40tude-dialog -> d.c.s.4-d
DotCount = 2; // Gib die Anzahl der Punke an, nach denen gekürtzt werden soll (1 oder 2)
// Funktioniert nur, wenn RenameGroups oder ShortenGroupNames auf "True" gesetzt wurden
WithPoints = True; // Setze die Einstellung auf "False", wenn du keine Punke zwischen den Zeichen möchtest
// z.B. de.comm.software.40tude-dialog -> dcs.40tude-dialog
//--[ SERVER ]------------------------------------------------------------------
HideServer = True; // Setze die Einstellung auf "True", wenn du die Servernamen ausblenden möchtest
// Mit folgender Einstellung wird nur ein Servername ausgeblendet
// HideServer muß dabei auf "True" gesetzt werden
HideOnlyOne = True; // Setze die Einstellung auf "False", wenn du alle Servernamen ausblenden möchtest
ServerName = 'hamster'; // Gib hier den Servernamen an, der ausgeblendet werden soll
{------------------------------------------------------------------------------}
{ Ende der Einstellungen }
{------------------------------------------------------------------------------}
{==============================================================================}
{ !!! Ab hier bitte nichts mehr ändern !!! }
{==============================================================================}
MaxInt = 2147483647;
Var NGConstantDots : TstringList;
NGConstantNoDots : TstringList;
NGShortDots : TstringList;
NGShortNoDots : TstringList;
GExtmp : String;
//--[ Procedure InitArrays ]----------------------------------------------------
Procedure InitArrays();
Begin
NGConstantDots := TstringList.Create;
NGConstantNoDots := TstringList.Create;
NGShortDots := TstringList.Create;
NGShortNoDots := TstringList.Create;
// Wenn du spezielle Namen für NGs vergeben möchtest, dann gib diese bitte unterhalb ein,
// mit dem vollständigen NG-Namen (Zeile kopieren und Einträge ändern).
// Gruppennamen ohne Punkte -> wenn WithPoints auf "False" gesetzt ist
With NGConstantNoDots Do
Begin
Add('de.comm.software.40tude-dialog=Dialog - der beste Newsreader');
End;
// Gruppennamen mit Punkten -> wenn WithPoints auf "True" gesetzt ist
With NGConstantDots Do
Begin
Add('de.comm.software.40tude-dialog=Dialog . der beste Newsreader');
End;
// Wenn du speziellen Teilen von Gruppennamen eine eigene Abkürzung geben möchtest, dann gib diese
// bitte unterhalb ein. (Zeile kopieren und Einträge ändern).
// Spezialnamen (ohne Punkte) -> wenn WithPoints auf "False" gesetzt ist
With NGShortNoDots Do
Begin
Add('MICROSOFT=ms_');
Add('NGFOLDER=ng_');
Add('FEUERWEHRMANN=fm_');
End;
// Spezialnamen (mit Punkten) -> wenn WithPoints auf "True" gesetzt ist
With NGShortDots Do
Begin
Add('MICROSOFT=ms');
Add('NGFOLDER=ng');
Add('FEUERWEHRMANN=fm');
End;
End;
//--[ Function SingleTerm ]-----------------------------------------------------
Function SingleTerm : String;
Var
tmpa : String;
cp : Integer;
Begin
tmpa := '';
cp := Pos(',', GExtmp);
If cp > 0 Then
Begin
tmpa := Copy(GExtmp, 1, cp - 1);
GExtmp := Copy(GExtmp, cp + 1, Length(GExtmp));
End
Else
If Length(GExtmp) > 0 Then
Begin
tmpa := GExtmp;
GExtmp := '';
End;
Result := tmpa;
End;
//--[ Function NameConstants ]--------------------------------------------------
Function NameConstants(NGName : String) : String;
Begin
Result := '';
If WithPoints = False Then
Begin
If NGConstantNoDots.IndexOfName(NGName) <> -1 Then
Result := NGConstantNoDots.Values[NGName];
End
Else
If NGConstantDots.IndexOfName(NGName) <> -1 Then
Result := NGConstantDots.Values[NGName];
End;
//--[ Function IsGroupExclude ]-------------------------------------------------
Function IsGroupExclude(NGName : String) : Boolean;
Var
tmp : String;
Begin
Result := False;
Repeat
tmp := SingleTerm;
If Pos(tmp, NGName) > 0 Then
Begin
Result := True;
Break;
End;
Until tmp = '';
End;
//--[ Function GetShort ]-------------------------------------------------------
Function GetShort(NGName : String) : String;
Var
chkStr : String;
Index : Integer;
Begin
Result := NGName[1];
If WithPoints = False Then
Begin
With NGShortNoDots Do
Begin
For Index := 0 To Count - 1 Do
Begin
chkStr := Names[Index];
If Names[Index] = Copy(UpperCase(NGName), 1, Length(chkStr)) Then
Result := Values[Names[Index]];
End;
End;
End
Else
Begin
With NGShortDots Do
Begin
For Index := 0 TO Count - 1 Do
Begin
chkStr := Names[Index];
IF Names[Index] = Copy(UpperCase(NGName), 1, Length(chkStr)) Then
Result := Values[Names[Index]];
End;
End;
End
End;
//--[ Function CutGenerations ]-------------------------------------------------
Function CutGenerations(NGName : String) : String;
Var
Posi,
KlammerPos : Integer;
Temp,
Temp2,
Temp3,
SName : String;
Begin
// Server
SName := '';
If KlammerPos <= 0 Then KlammerPos := AnsiPos('(', NGName);
If KlammerPos > 0 Then
Begin
If (HideServer = False) Or
(Pos('Inbox', NGName) = 1) Or
(HideOnlyOne = True) And
(Copy(NGName, KlammerPos + 1, Length(ServerName)) <> ServerName) Then
SName := Copy(NGName, KlammerPos, MaxInt);
NGName := Trim(Copy(NGName, 1, KlammerPos - 1));
End;
// Gruppen
If RenameGroups = False Then Temp3 := ''
Else Temp3 := NameConstants(UpperCase(NGName));
If Temp3 = '' Then
Begin
Posi := AnsiPos('.', NGName);
If (Posi > 0 ) And
(ShortenGroupNames = True ) And
(IsGroupExclude(NGName) = False) Then
Begin
Temp2 := Copy(NGName, Posi + 1, MaxInt);
Posi := AnsiPos('.', Temp2);
If (Posi > 0) Or (DotCount < 2) Then
Begin
Temp2 := NGName;
Posi := AnsiPos('.', Temp2);
Repeat
If WithPoints = True Then Temp := Temp + '.' + GetShort(Temp2)
Else Temp := Temp + GetShort(Temp2);
Temp2 := Copy(Temp2, Posi + 1, MaxInt);
Posi := AnsiPos('.', Temp2);
Until Posi <= 0;
If CompleteShort = False Then
Begin
Temp := Temp + '.' + Temp2;
If WithPoints = True Then Temp := Copy(Temp, 2, MaxInt);
End
Else
Begin
If WithPoints = True Then
Temp := Copy(Temp + '.' + GetShort(Temp2), 2, MaxInt)
Else Temp := Temp + GetShort(Temp2);
End
End
Else Temp := NGName;
End
Else Temp := NGName;
End
Else Temp := Temp3;
// Ergebnis
// Servername wird eingefügt, wenn er vorher bereits angezeigt wurde
If SName <> '' Then result := Temp + ' ' + SName
Else result := Temp;
End;
//--[ Function OnNewsgroupListPaint ]-------------------------------------------
Function OnNewsgroupListPaint(
PaintString : WideString;
ColumnIndex : Integer
) : WideString;
Var
ShortString : String;
NewWide : WideString;
Begin
InitArrays;
GExtmp := GroupsExclude;
ShortString := PaintString;
ShortString := CutGenerations(ShortString);
NewWide := ShortString;
Result := NewWide;
NGConstantDots.Free;
NGConstantNoDots.Free;
NGShortDots.Free;
NGShortNoDots.Free;
End;
//------------------------------------------------------------------------------
Begin
End.
Download
![]() |
![]() |
|
| |
||








