Einzelnen Beitrag anzeigen

Tahtu
(Gast)

n/a Beiträge
 
#10

AW: Doppelte Strings in einer Liste finden

  Alt 27. Jan 2017, 09:14
Ich habe diese Lösung implementiert:
Code:
function Compare(List: TStringList; Index1, Index2: Integer): Integer;
begin
  Result := Sign(StrToInt(List.Values[List.Names[Index2]]) - StrToInt(List.Values[List.Names[Index1]]));
end;

procedure HandleMostUsedStrings();
var
  I: Integer;
  S: string;
  SL: StringList;
begin
  SL := TStringList.Create;

  repeat
    S := GetOneString;

    if not TryStrToInt(MostFrequentlyUsed.Values[S], Count) then Count := 0;
    SL.Values[S] := IntToStr(Count + 1);
  until AllStringsGetted;

  SL.CustomSort(Compare);

  for I := SL.Count - 10 to SL.Count - 1 do
    HandleString(SL.Names[I]);

  SL.Free;
end;
... natürlich müssen noch "=" in den Strings escaped werden, damit sie in der StringList nicht stören...

Mein Beispiel jedoch schon. Es soll nur zeigen wie man es machen kann.
t.roller wollte einfach sich wichtig machen, indem er zeigt, dass andere zu blöd sind zu suchen, statt eine neue Frage zu stellen. Ging leider in die Hose, indem er zeigte selbst meine Frage nicht verstanden zu haben.

Zitat von t.roller:
"Viele Menschen sind zu dumm, die richtigen Fragen zu stellen."
Es ist ein erhabenes Gefühl besser zu sein als andere. Aber wer das zur Schau stellt zeigt nur, dass er wichtig sein möchte - das machen nur dumme Menschen.

Geändert von Tahtu (27. Jan 2017 um 09:20 Uhr)