Einzelnen Beitrag anzeigen

IMPEGA

Registriert seit: 19. Jan 2008
Ort: Brhv
80 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#4

AW: array of record sortieren

  Alt 7. Dez 2020, 18:00
Ich bin zwar nue ein Anfänger,doch ein Senf kann ich dazugeben.
So habe ich es gemacht.
Ist natürlich nur als Beispiel gedacht.

Delphi-Quellcode:
type
  TRec = record
    Titel : string;
    Network : string;
    URL : string;
  end;

type
  TArray = array of TRec;

function Compare(const Data1, Data2: TRec): Integer;
begin
  Result := CompareText(Data1.Titel, Data2.Titel);
end;

procedure Swap(var Data1, Data2: TRec);
var
  Temp : TRec;
begin
  Temp := Data1;
  Data1 := Data2;
  Data2 := Temp;
end;

procedure SortArray(var People: TArray);
var
  Index : Integer;
  Laenge : Integer;
  Swapped : Boolean;
begin
  Laenge := Length(People);
    repeat
      Swapped := False;
        for Index := 1 to Laenge - 1 do
          begin
            if Compare(People[Index - 1], People[Index]) > 0 then
              begin
                Swap(People[Index - 1], People[Index]);
                Swapped := True;
              end;
          end;
      Dec(Laenge);
    until not Swapped;
end;


procedure TForm1.Button1Click(Sender: TObject);
var
  Index : Integer;
  Array_Rec : TArray;
begin
  Index := 0;

  SetLength(Array_Rec, Memo1.Lines.Count - 1);
    while Index <= Memo1.Lines.Count - 1 do
      begin
        Array_Rec[Index].Titel := Memo1.Lines[Index];
        Array_Rec[Index].Network := Memo1.Lines[Index + 1];
        Array_Rec[Index].URL := Memo1.Lines[Index + 2];
        Inc(Index, 3);
      end;

  SortArray(Array_Rec);

  for Index := 0 to Length(Array_Rec) - 1 do
    begin
      if Array_Rec[Index].Titel <> 'then
        begin
          Memo2.Lines.Add(Array_Rec[Index].Titel);
          Memo2.Lines.Add(Array_Rec[Index].Network);
          Memo2.Lines.Add(Array_Rec[Index].URL);
        end;
    end;
end;
  Mit Zitat antworten Zitat