Einzelnen Beitrag anzeigen

Benutzerbild von arcticwolf
arcticwolf

Registriert seit: 3. Aug 2021
Ort: Erfurt
41 Beiträge
 
Delphi 11 Alexandria
 
#8

AW: Strings zusammenführen und Bereinigen

  Alt 8. Mai 2023, 11:27
Delphi-Quellcode:
Uses
  Generics.Collections,
  System.SysUtils;

Type TIntegerList = TList<Integer>;

Type TIntegerListHelper = Class Helper for TIntegerList
     public
       Function ToString : String;
     end;

Function TIntegerListHelper.ToString : String;
Var
  i : Integer;
begin
  Result := '[';
  for i := 0 to Count-1 do
  begin
    Result := Result + Items[i].ToString;
    if (i<Count-1) then Result := Result + ', ';
  end;
  Result := Result + ']';
end;

Procedure AddToIntegerList(Var IntegerList:TIntegerList; aString:String);
Var
  StringArray : TArray<string>;
  i : integer;
  Value : Integer;
begin
  StringArray := aString.Split([',']);
  for I := 0 to High(StringArray) do
  begin
    Value := StrToInt(StringArray[i]);
    if (IntegerList.IndexOf(Value)=-1)
       then IntegerList.Add(Value);
  end;
end;

Procedure CreateIntegerList;
Var IntegerList : TIntegerList;
begin
  IntegerList := TIntegerList.Create;
  AddToIntegerList(IntegerList,'1,2,4,6,9');
  AddToIntegerList(IntegerList,'1,3,6,9,10,11');
  AddToIntegerList(IntegerList,'2,3,4,9,10');
  IntegerList.Sort;
  Writeln(IntegerList.ToString);
  IntegerList.Free;
end;
Die Ausgabe sieht dann wie folgt aus:

Code:
[1, 2, 3, 4, 6, 9, 10, 11]
Eventuell noch eine try .. except um StrToInt, wenn Du dir nicht sicher bist, dass nur Zahlen im String sind.
Wolfgang
  Mit Zitat antworten Zitat