Announcement

Collapse
No announcement yet.

Sortieren eines array of Char in einer TList?

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Sortieren eines array of Char in einer TList?

    Hallo Delphianer,

    ich habe folgendes Problem;
    Ich habe ein Record TPRKopf definiert welches fleissig
    in eine TList geschrieben wird. In TPRKopf gibt es ein
    "KLOBJID" vom Typ array[0..9] of Char;

    Ich möchte die Liste nach diesem Feld sortieren lassen.
    Mein Gedanke war mit TList.Sort(MeineSortierung); OK!

    Die Methode definiere ich folgendermaßen

    function MeineSortierung(I1, I2 : Pointer) : Integer;
    begin

    end;

    Aber wie sortiere ich nun die Liste???????????????????????
    Wäre schön wenn mir jemand helfen könnte...

    Vielen Danke

    Hier der Quelltext:

    Type TDynChar = array of Char;

    Type
    PRKopf = ^TPRKopf;
    TPRKopf = packed Record
    KLOBJID : array[0..9] of Char;
    SPRACHE : Char;
    TEXT : TDynChar;
    end;

    // Die Methode schreibe ich verkürzt auf
    procedure WriteTLIst;
    var
    ARec : PRKopf;
    B : TDynChar;
    MList : TList;
    begin
    { Hier wird B aus einem Stream mit ReadBuffer gelesen
    ...
    ...
    usw...
    }
    MList : TList.Create;

    New(ARec);
    StrPCopy(ARec^.KLOBJID, Copy(ARecord1^.KLOBJID, 1, 10));
    ARec^.Sprache := 'd';
    ARec^.Text := B;

    MList.Add(ARec);
    MList.Sort(MeineSortierung); // HIER SOLLL SOTIERT WERDEN!!!!!!
    // ================================

    end;

  • #2
    Hallo Enrico,

    deine Funktion MeineSortierung muß als Ergebnis -1 wenn der Wert hinter I1 < als der hinter I2 ist, 0 wenn beide Werte gleich sind und 1 wenn der Wert hinter I1 > als der hinter I2 ist zurückliefern. Wenn ich deinen Code richtig überflogen habe, müßten in I1 und I2 Zeiger vom Typ PRKopf zurückgeliefert werden. Damit kannst du auf den Inhalt von KLOBJID (z.B. PRKopf(I1)^.KLOBJID) zugreifen und entsprechend I1 mit I2 vergleichen. Die Sortierung übernimmt dann TList anhand der Rückgabewerte von MeineSortierung.

    Gruß Fal
    Wenn du denkst du hast alle Bugs gefunden, dann ist das ein Bug in deiner Denksoftware.

    Quellcode ohne ein Mindestmaß an Formatierung sehe ich mir nicht an! Ich leiste keinen Privatsupport per Mail oder PN!

    Comment


    • #3
      Hallo Falk,

      vielen Dank für Deine Antwort. Hat mich auf den
      richtigen Weg gebacht!
      So langsam wird man Betriebsblind.

      Gruß
      Enric

      Comment

      Working...
      X