Hi BugFix,
kann es sein, dass Array2DSortFree nicht mit negativen Zahlen umgehen kann?
Wäre es möglich die Funktion zu ändern, damit auch negative Zahlen sortiert werden können?
Array2DSortFree - negative Zahlen
-
- [ offen ]
-
Tweaky -
31. Januar 2014 um 22:05 -
Erledigt
-
-
- Offizieller Beitrag
Pooh - da bin ich im Moment überfragt.
Leider ist SQLite ja genauso dreckig wie AutoIt, was Datentypen und den Umgang damit angeht.
Ich werde mir das nochmal anschauen, ist ja doch schon ein paar Tage alt. Muss ich mich mal wieder reinfinden. -
OK, dank dir schonmal im Voraus
-
- Offizieller Beitrag
Ging schnell - hab mir den Code nochmal angesehen.
Um überhaupt nummerisch sortieren zu können muß ich die SQL-Funktion "Abs" nutzen, ansonsten ist der Inhalt aus Sicht von SQLite ein String. "Abs" wiederum macht was der Name sagt: es liefert den absoluten Wert. Bei negativen Zahlen wird somit das Vorzeichen gekillt.Das Problem ist Folgendes:
AutoIt-Arrays sagen uns nichts über den Inhalt. Ist die Ziffer eine Ziffer? Oder soll sie als Zahl genutzt werden? Der Scheiß-Datentyp Variant spuckt uns hier mitten ins Gesicht.
(Jeden weiteren Tag, den ich was mit AutoIt mache könnte ich mich mehr über diesen Dreck aufregen. Ist doch nun wirklich nicht problematisch den Nutzer zu zwingen, festzulegen, was für Daten er überhaupt verwenden will. )
Und aus diesem Variant-Grund kann ich beim Erstellen der Datenbank keine Datentyp-orientierten Felder erstellen - ich weiß ja nie, was kommt. Also muss ich die Felder als Variant lassen und mit "Abs" den nummerischen Vergleich erzwingen - mit besagtem Problem bei negativen Zahlen.Fazit: Eine allgemeingültige Funktion, die auch negative Zahlen sortiert, ist so nicht möglich.
Dazu müßtest du dann fallbezogen jeweils eine Datenbank mit konkreter Datentyp-Struktur erstellen. -
Kann man da nicht tricksen und das Array splitten: 1x mit - und 1x ohne -.
Dann sortieren und wieder zusammenfügenEDIT: Ne ist eigentlich doof bei 2D-Arrays :wacko:
-
- Offizieller Beitrag
Tricksen wird hier schwerfallen, da wir ja zeitgleich mehrere Spalten sortieren, ist ein Nacheinander der Sortierung nicht möglich.
Ich werde mal noch ein bischen Grübeln, vielleicht habe ich eine Eingebung. -
Nachträglich innerhalb deiner Funktion die Zahlen mit Number als Zahl erkennen lassen geht nicht
Wenn es keine allgemeingültige Möglichkeit geben sollte, könntest du vielleicht einen optionalen Parameter einbauen, beim dem man beim Funktionsaufruf sagt es sind alles Zahlen. Wäre dies möglich