Announcement

Collapse
No announcement yet.

doppelte einträge aus Stringliste entfernen

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

  • doppelte einträge aus Stringliste entfernen

    Hallo,

    weiss jemand einen intelligenten algorythmus mit dem man doppelte einträge aus einer stringliste entfernen kann?

    gruß

    markus
    Herzliche Grüße

    Markus Lemcke
    barrierefreies Webdesign

  • #2
    Hat eine Stringlist mit eine property Duplicated?<p>
    Mari
    Schöne Grüße, Mario

    Comment


    • #3
      das funzt aber nur, wenn du die strings "add" bzw. "addStrings" über gibst und ich muss eine zuweisung über die eigenschaft text machen.
      da funzt das nicht!

      gruß

      marku
      Herzliche Grüße

      Markus Lemcke
      barrierefreies Webdesign

      Comment


      • #4
        Hi Markus,

        versuch mal dies:

        List := TStringList.Create();
        List.Text = MyText;
        List.Sort();
        I := List.Count - 1;
        while I > 0 do
        begin
        if List.Strings[I] = List.Strings[I - 1] then List.Delete(I);
        Dec(I);
        end;

        Die Liste wird nach der Zuweisung sortiert, so das doppelte Einträge hintereinander liegen. Dannach wird die Liste rückwärts duchsucht und auf den Vorgänger geprüft. Wenn mit Vorgänger gleich, dann wird der aktuelle Eintrag gelöscht.

        Gruß
        Richar

        Comment


        • #5
          hallo richard,
          vielen dank! es scheint wohl nicht an der stringliste zu liegen, sondern am füllen der combobox! muss da wohl eine ähnliche procedure schreiben, aber nun weiss ich ja wie e geht!!

          gruß

          marku
          Herzliche Grüße

          Markus Lemcke
          barrierefreies Webdesign

          Comment


          • #6
            so:
            <pre>
            //Doppelte Einträge aus Combobox löschen
            procedure CBX_Doppelte_Loeschen(Cbx : Tcombobox);
            var
            i : integer;
            begin
            cbx.Items.BeginUpdate;
            try
            I := Cbx.Items.Count - 1;
            while I > 0 do
            begin
            if Cbx.Items[I] = Cbx.Items[I - 1] then Cbx.Items.Delete(I);
            Dec(I);
            end;
            finally
            cbx.Items.EndUpdate;
            end;
            end;
            </pre>

            funktioniert es für comboboxen, deren inhalt schon sortiert ist!
            mit dieser prozedur habe ich das problem gelöst!!!

            gruß

            marku
            Herzliche Grüße

            Markus Lemcke
            barrierefreies Webdesign

            Comment

            Working...
            X