Sortierung {Erldigt]

Alle Fragen um die Programmierung, die sich sonst nicht kategorisieren lassen. Von Makro bis Codeblock, von IF bis ENDIF

Moderator: Moderatoren

Antworten
Benutzeravatar
Wolfgang Ciriack
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2860
Registriert: Sa, 24. Sep 2005 9:37
Wohnort: Berlin
Hat sich bedankt: 8 Mal
Danksagung erhalten: 26 Mal
Kontaktdaten:

Sortierung {Erldigt]

Beitrag von Wolfgang Ciriack »

Hallo,
habe ein Array, wo ich die Elemente sortieren möchte, dass klappt ja auch.
Erstes Element: Datum
Zweites Element: String(aus Zahlen)
Mit ASort(aTmp, , , {|aX, aY| DtoS(aX[1]) + aX[2] < DtoS(aY[1]) + aY[2]}) bekomme ich z.B. eine Sortierung (zweites Element)
"100"
"201"
"30004"
"60"
"700"
Nun soll das aber nach Datum und zweites Feld "numerisch" sortiert werden, also
"60"
"100"
"201"
"700"
"30004"
Jemand eine Idee, wie man dann die Sortierung des Arrays zur Ausgabe sortieren kann ?
Zuletzt geändert von Wolfgang Ciriack am Di, 03. Mai 2022 15:11, insgesamt 1-mal geändert.
Viele Grüße
Wolfgang
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 8870
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 54 Mal
Danksagung erhalten: 224 Mal
Kontaktdaten:

Re: Sortierung

Beitrag von Tom »

Code: Alles auswählen

ASort(aTmp, , , {|aX, aY| DtoS(aX[1]) + Str(Val(aX[2]),10,0) < DtoS(aY[1]) + Str(Val(aY[2]),10,0)})
Herzlich,
Tom
Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
Beiträge: 16018
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Hat sich bedankt: 68 Mal
Danksagung erhalten: 40 Mal
Kontaktdaten:

Re: Sortierung

Beitrag von Martin Altmann »

Aufsteigend oder Absteigend numerisch? Mach doch für das numerische Feld das Komplement als strzero().
Bsp.: Dein numerisches Feld hat eine Länge von 5:

Code: Alles auswählen

ASort(aTmp, , , {|aX, aY| DtoS(aX[1]) + strzero( 99999 - aX[2], 5 ) < DtoS(aY[1]) + strzero( 99999 - aY[2], 5 ) })
Oder meintest Du was anderes?

Viele Grüße,
Martin
:grommit:
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/

Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
Wolfgang Ciriack
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2860
Registriert: Sa, 24. Sep 2005 9:37
Wohnort: Berlin
Hat sich bedankt: 8 Mal
Danksagung erhalten: 26 Mal
Kontaktdaten:

Re: Sortierung

Beitrag von Wolfgang Ciriack »

Werde mal beide Vorschläge ausprobieren.
Danke vorerst.
Viele Grüße
Wolfgang
Benutzeravatar
Wolfgang Ciriack
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2860
Registriert: Sa, 24. Sep 2005 9:37
Wohnort: Berlin
Hat sich bedankt: 8 Mal
Danksagung erhalten: 26 Mal
Kontaktdaten:

Re: Sortierung

Beitrag von Wolfgang Ciriack »

Ok, funktionieren beide, Danke.
Hatte sowas schon mal, bin bloß auf die Schnelle nicht mehr auf diese einfache(n) Lösung(en) gekommen.
Viele Grüße
Wolfgang
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 8870
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 54 Mal
Danksagung erhalten: 224 Mal
Kontaktdaten:

Re: Sortierung {Erldigt]

Beitrag von Tom »

Statt Str(Val()) könntest Du auch schlicht PadL() nutzen.
Herzlich,
Tom
Antworten