Deutsch
Experimente

Sorted Gridbox: Auch alphanumerisch abwärts sortierbar (XProfan-11)

 

p.specht

Gridboxversuch: Jetzt auch alphanumerisch abwärts sortierbar
==============================================
Der sortierte Gridbox-Style sortiert automatisch alphanumerisch aufwärts. Will man das ganze umkehren, ist eine Umwandlung in der nicht angezeigten ersten Spalte mit dem Sortierschlüssel vorzunehmen.

Hinweis von Michael Wodrich: Das Selectstring müsste auch noch angepasst werden, um Deutschland und Schweiz auch bei inverser Sortierung zu kennzeichnen - und nicht fälschlicher Weise andere Einträge!

Danke, Michael, für die Hinweise!
Auch suche ich noch nach einer Möglichkeit, die aktuellen Spaltenbreiten nach einer Veränderung mit der Maus festzustellen. Bei der nachstehenden Variante bleiben die "Sensorfelder" zur Änderung der Sortierreihenfolge in der obersten Spalte nämlich auf den Werten, die zu Beginn eingestellt waren... Kann sehr verwirrend sein!
 

Da Sonderzeichen z.B. (ÄäÖöÜüß) vom Gridbox-Sortieralgorithmus als (AaOoUuss) behandelt werden, um Telefonbuch-Sortierung zu erreichen, genügt es nicht, die Zeichen einfach als chr$(255-ord("x")) herumzudrehen. Letztlich blieb nur über A...Z auf Z...A, a...z auf z...a und 0..9 auf 9...0 zu spiegeln. Die Sonderzeichen müssen vorher selbst auf AOUaouss gemappt werden - eine Behelfslösung halt, auf Neudeutsch: Ein "Workaround"...

WindowTitle upper$("Gridboxtest Nr.3: Spaltensort up/down jetzt auch Alphanumerisch")
var data$=\
"01|Singapur|108|20.994 €|745 €|31,5 °C#"+\
"07|Schweiz|102|41.319 €|2.040 €|12,7 °C#"+\
"08|Niederlande|102|27.585 €|1.388 €|14,3 °C#"+\
"13|Kanada|101|22.761 €|1.366 €|7,4 °C#"+\
"14|Belgien|100|25.417 €|1.388 €|14,5 °C#"+\
"15|Deutschland|100|25.548 €|1.150 €|13,5 °C#"+\
"16|Vereinigtes Königreich|100|25.524 €|1.204 €|12,8 °C#"+\
"17|Österreich|100|26.442 €|1.456 €|13,0 °C#"+\
"200|osterinseln|100|26.442 €|1.456 €|13,0 °C#"+\
"20|Schweden|99|30.087 €|1.932 €|9,4 °C#"+\
"22|Dänemark|99|32.333 €|2.583 €|11,9 °C#"+\
"108|Äquatorialguinea|56|2.757 €|119 €|30,2 °C#"+\
"300|äquatorialguiness|56|2.757 €|119 €|30,2 °C"
Windowstyle 24':window 0,0-640,480
CLS
var srt$=""
var t$=\
";1;0;"+\
"Platz;1;40;"+\
"Land;0;180;"+\
"Ø IQ;2;80;"+\
"Ø Einkommen;1;80;"+\
"Bildungsausg/EW;2;110;"+\
"Ø Tageshöchsttemp;2;130"
var sort&=1:var multi&=2
var gbhdl&=@Create("GridBox",%hwnd,t$,sort&+multi&, 0,0,width(%hwnd),height(%hwnd))
declare tmp$[],mx%,my%,down&,spalte&
tmp$[]=explode(data$,"#"):clear data$
spalte&=2
MAKEGRID:

whileloop 0,sizeof(tmp$[])-1

    Addstring(gbhdl&,num$(tmp$[&Loop],spalte&,down&)+"|"+tmp$[&Loop])

endwhile

@SelectString(gbhdl&,-1,"Schweiz")
@SelectString(gbhdl&,-1,"Deutschland")
@SelectString(gbhdl&,-1,"Österreich")

repeat

    waitmouse
    mx%=%mousex:my%=%mousey
    ' Windowtitle str$(mx%)+","+str$(my%)

    if my%<23 : down&=0:case my%<12:down&=1

        if mx%<42:spalte&=1

        elseif mx%<222:spalte&=2

        elseif mx%<300:spalte&=3

        elseif mx%<382:spalte&=4

        elseif mx%<490:spalte&=5

        elseif mx%>=490:spalte&=6

        endif

        clearlist gbhdl&
        goto "MAKEGRID"

    endif

until %key=27

END

proc num$ :parameters z$,sp&,down&

    var s$=substr$(z$,sp&,"|")
    s$=translate$(s$," €","")
    s$=translate$(s$," °C","")
    s$=translate$(s$,".","")
    s$=translate$(s$,",","")

    if val(s$)<>0

        s$=right$("0000000000"+s$,10)
        case down&:s$=str$(2147483647-val(s$))

    else

        s$=substr$(z$,sp&,"|")
        s$=translate$(s$,"Ä","A")
        s$=translate$(s$,"Ö","O")
        s$=translate$(s$,"Ü","U")
        s$=translate$(s$,"ä","a")
        s$=translate$(s$,"ö","o")
        s$=translate$(s$,"ü","u")
        s$=translate$(s$,"ß","ss")

        if down&=1

            var y&=0:var p$=""

            whileloop len(s$):y&=ord(mid$(s$,&loop,1))

                if between(y&,65,90):y&=155-y&

                elseif between(y&,48,57):y&=105-y&

                elseif between(y&,97,122):y&=219-y&

                endif

                p$=p$+chr$(y&)
                endwhile:s$=p$

            endif

        endif

        return s$

    endproc

 
Computer: Gerät, daß es in Mikrosekunden erlaubt, 50.000 Fehler zu machen, zB 'daß' statt 'das'...
27.05.2021  
 



Zum Experiment


Thementitel, max. 100 Zeichen.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Beitrag  Schrift  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Themenoptionen

1.078 Betrachtungen

Unbenanntvor 0 min.
H.Brill03.12.2022
RudiB.01.02.2022
Ernst21.07.2021
Uwe ''Pascal'' Niemeier13.06.2021
Mehr...

Themeninformationen

Dieses Thema hat 1 Teilnehmer:

p.specht (1x)


Admins  |  AGB  |  Anwendungen  |  Autoren  |  Chat  |  Datenschutz  |  Download  |  Eingangshalle  |  Hilfe  |  Händlerportal  |  Impressum  |  Mart  |  Schnittstellen  |  SDK  |  Services  |  Spiele  |  Suche  |  Support

Ein Projekt aller XProfaner, die es gibt!


Mein XProfan
Private Nachrichten
Eigenes Ablageforum
Themen-Merkliste
Eigene Beiträge
Eigene Themen
Zwischenablage
Abmelden
 Deutsch English Français Español Italia
Übersetzungen

Datenschutz


Wir verwenden Cookies nur als Session-Cookies wegen der technischen Notwendigkeit und bei uns gibt es keine Cookies von Drittanbietern.

Wenn du hier auf unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung von Informationen in unseren Cookies auf XProfan.Net zu.

Weitere Informationen zu unseren Cookies und dazu, wie du die Kontrolle darüber behältst, findest du in unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Ich möchte keinen Cookie