Einzelnen Beitrag anzeigen

ebi

Registriert seit: 8. Sep 2024
11 Beiträge
 
Delphi 12 Athens
 
#16

AW: Sortieren eines Array of record

  Alt 9. Sep 2024, 18:11
Hallo,

Danke für Euer Verständnis, hier mal mein Delphi-CODE.

Delphi-Quellcode:
FUNCTION TCodeSorted(Value: array of TCode): TArray<TCode>;
begin
  SetLength(Result, Length(Value));
  for var I := 0 to High(Result) do
    Result[I] := Value[I];
  TArray.Sort<TCode>(Result, TDelegatedComparer<TCode>.Create(
    FUNCTION(const Left, Right: TCode): integer
    begin
      Result := string.Compare(Left.Wort, Right.Wort, [coDigitAsNumbers]);
    end));
end;
Delphi-Quellcode:
  // TSteuerung: PAL
  begin
    Pal := TSteuerung.Create('PAL');
    SetLength(Pal.Nullpunkt, 6);
    Pal.Nullpunkt[0] := 'G54';
    Pal.Nullpunkt[1] := 'G55';
    Pal.Nullpunkt[2] := 'G56';
    Pal.Nullpunkt[3] := 'G57';
    Pal.Nullpunkt[4] := 'G58';
    Pal.Nullpunkt[5] := 'G59';
    SetLength(Pal.Parameter, 0);

    // GCodeB nach TArray sortiert und in TSteuerung
    begin
      lLength := Length(GCodeB);
      SetLength(TArray, lLength);
      SetLength(Pal.Wegbedingung, lLength);

      arr := TCodeSorted(GCodeB);
      Zaehler := 0;
      for var rec in arr do
        begin
          TArray[Zaehler].Wort := rec.Wort;
          TArray[Zaehler].Bezeichnung := rec.Bezeichnung;
          Pal.Wegbedingung[Zaehler].Wort := TArray[Zaehler].Wort;
          Pal.Wegbedingung[Zaehler].Bezeichnung := TArray[Zaehler].Bezeichnung;
          Zaehler := Zaehler + 1;
        end;
    end;
  end;
  Mit Zitat antworten Zitat