0

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

null
    • Torsten_Stang.1
    • vor 5 Jahren
    • Gemeldet - anzeigen

    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;
    newIP

    Ja, 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

    • Birger_H
    • vor 5 Jahren
    • Gemeldet - anzeigen

    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

    • Leonid_Semik
    • vor 5 Jahren
    • Gemeldet - anzeigen

    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;
    NN

     

    Leo

    • Torsten_Stang.1
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Hi Leo,

    die Sortierung der IPs bei Deiner Lösung ist leider kunterbunt :-/

    lg, Torsten

Content aside

  • vor 5 JahrenZuletzt aktiv
  • 4Antworten
  • 1915Ansichten