IP-Adresse sortieren
Tach Gemeinde!
Ich habe in einigen Tabellen jeweils ein Feld "IP-Adresse". Dieses ist, der zu erwartenden Daten geschuldet, je als Textfeld angelegt. Ich würde nun gerne nach diesem Feld sortieren, was in diesem Fall aber leider zu unschönen Ergebnissen führt, zum Beispiel:
10.1.2.3
10.10.3.4
10.11.4.5
10.2.7.8
Für Access hatte ich mal (viel) früher ein furchtbar umständliches Konstrukt gebaut, an welches ich mich aber nur vage erinnere und das selbst wenn ich es noch wüsste wohl kaum direkt in Ninox umsetzbar wäre (IP-Adresse aufdröseln und in einem Hilfsfeld dreistellig übergeben).
Hat von Euch einer eine Idee, wie ich das bewerkstelligen könnte?
lg, Torsten
4 Antworten
-
Huhu,
ich hab's gelöst bekommen.
Ich sortiere nach einem Berechnungsfeld mit der Funktion:
let oldIP := 'Werks-IP';
let myArray := split(oldIP, ".");
let newIP := "";
for II in myArray do
newIP := newIP + lpad(II, 3, "000") + "."
end;
newIPJa, der Punkt hinten stört mich auch, hab ich aber auf die Schnelle nicht wegbekommen... :-)
Prinzipiell könnte ich ihn ganz weglassen, so oder so ist es ein optischer Kompromiss - die Variante mit Punkt ist lesbarer.
lg, Torsten
-
Hier wäre meine Lösung:
–––
let myIPSegments := split(IP, ".");
var myX := 0;
for i in myIPSegments do
let myY := myX;
myX := myY * 1000 + number(i)
end;
myX–––
Birger
-
Kann dir noch die IP als Zahl anbieten, lasst sich auch sehr gut sortieren:
let myArray := rsort(split('Werks-IP', "."));
var NN := 0;
for II from 0 to cnt(myArray) do
NN := NN + number(item(myArray, II)) * pow(10, II + 1)
end;
NNLeo
-
Hi Leo,
die Sortierung der IPs bei Deiner Lösung ist leider kunterbunt :-/
lg, Torsten
Content aside
- vor 6 JahrenZuletzt aktiv
- 4Antworten
- 1921Ansichten