Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#49

AW: e-mail adressen ordnen im memo

  Alt 14. Aug 2011, 07:13
CustomSort kann man eine Sortierfunktion übergeben, jeweils eine Andere, da braucht man keinen weiteren parameter.

Delphi-Quellcode:
if SortByProvider then
  TStringList(nil).CustomSort(function(List: TStringList; Index1, Index2: Integer): Integer
    begin
      Result := AnsiCompareText(GetDomainPart(Item1), GetDomainPart(Item2))
      if Result = 0 then
        Result := AnsiCompareText(GetNamePart(Item1), GetNamePart(Item2));
    end)
else
  //StringList.CustomSort(function(List: TStringList; Index1, Index2: Integer): Integer
  // begin
  // Result := AnsiCompareText(Item1, Item2);
  // end);
  StringList.Sort; // hat sich ja nix geändert
Bei wem es noch keine anonymen Methoden gibt, der nutzt halt eine "normale" Funktion dafür.

AnsiLowerCase und die If-Vergleiche sind in Delphi-Referenz durchsuchenAnsiCompareText schon eingebaut.
Und nicht über das Ansi wundern ... unter Unicode ist das urplötzlich eine Unicodefunktion, weil irgendwe dachte es wäre cool so.
Oder Delphi-Referenz durchsuchenAnsiComparestr ohne integriertem AnsiLowerCase.
und bei falscher Sortierreihenfolge einfach die Parameter tauschen.

PS: Sowas wie Folgendes würde ich hiebei nie nutzen, denn ein NOT kann man beim Lesen shcnell mal übersehn
und die beiden Then-Else-Zweige kann man ja uch problemlos tauschen.
Delphi-Quellcode:
if not ... then
begin

end
else
$2B or not $2B

Geändert von himitsu (14. Aug 2011 um 07:18 Uhr)
  Mit Zitat antworten Zitat