Sortiercode funktioniert nicht

Startseite Foren Deutsches LiveCode-Forum Sortiercode funktioniert nicht

Ansicht von 4 Antwort-Themen
  • Autor
    Beiträge
    • #34389
      Peter_M
      Teilnehmer

        Hallo Forum,
        ich wollte die Worte eines Textfelds „Produktliste“ sortieren und habe offensichtlich wieder mal einen Knoten im Gehirn!
        Beim ersten Ausführen folgenden Codes wurden die Worte zwar noch sortiert, aber nicht wie gewünscht von A-Z sondern umgekehrt.

        on mouseUp
           put the text of fld"Produktliste" into zu_sortieren
           put " " & word 1 of zu_sortieren into sortiert
           repeat with x=2 to the number of words of zu_sortieren
              put " " & word x of zu_sortieren  into zs
              put 0 into y
              repeat
                 put y+1 into y
                 if zs > word y of sortiert then exit repeat
              end repeat
              put zs &" " before word y of sortiert
           end repeat
           put sortiert into fld"Produktliste"
        end mouseUp
        

        Bei weiteren Ausführungsversuchen nach Modifikationen
        des Textfelds passierte scheinbar gar nichts mehr. Was mache ich falsch?

      • #34400
        Torsten
        Teilnehmer

          Hi Peter,

          was willst Du denn nach welchem Kriterium sortieren?

          Im Beitrag sagst du, dass von A-Z sortiert werden sollte, dafür ist das hier besser:

          set itemdelimiter to space
          sort items of zu_sortieren text descending
          

          Happy Coding
          Torsten

        • #34403
          Klaus Major
          Administrator

            Und warum vergleichst Du zwei String mit >?

            ...
            ## Sowohl "zs" als auch "word y of zu_sortieren" sind Strings
            ## Wann ist ein String (KEINE Nummer) größer oder kleiner als ein anderer?
            if zs > word y of sortiert
            ...
          • #34412
            Torsten
            Teilnehmer

              Livecode macht lustige Sachen:

              „A“ < „B“ = true
              „A“ > „B“ = false

              „2A“ > „10“ = true

              ?

            • #34415
              Peter_M
              Teilnehmer

                Hi Klaus,
                ich komme halt von Visual Basic, da hat man so programmiert.

                Hi Torsten,
                dein Code war mal wieder genau das, was ich gesucht habe. Danke!
                Nichtsdestotrotz verstehe ich nicht – wenn auch jetzt unwichtig – wie LiveCode meinen Code verarbeitet hatte. Beispielsweise habe ich nach der 1. Sortierung ein Produkt in der Liste verschoben und dann wieder die Sortierung aufgerufen. Jetzt passierte rein gar nichts. Das manuell nachträglich falsch ein sortierte Produkt liebt genau an seinem Platz….
                Ja, LiveCode macht manchmal lustige Sachen!

            Ansicht von 4 Antwort-Themen
            • Du musst angemeldet sein, um auf dieses Thema antworten zu können.