Wunsch: Funktion zum Vergleich von Versionsnummern
- embl-structures
- Beiträge: 327
- Registriert: 13 Jan 2010, 18:41
- Wohnort: Heidelberg
- Kontaktdaten:
Wunsch: Funktion zum Vergleich von Versionsnummern
Der Vergleich von Versionsnummern (2.4.5, 7.8B3, 1.2_c, 9.0.1 (DE), etc.) ist sehr muehsam und fehleranfaellig. Es waere sehr praktisch, wenn solche Funktionen direkt in wInst zur Verfuegung stehen wuerden.
Gruss
frank
Gruss
frank
Re: Wunsch: Funktion zum Vergleich von Versionsnummern
Hallo,
was wäre denn der Algorithmus für einen
Gruß,
Rupert Röder
was wäre denn der Algorithmus für einen
Der winst kann das in der Funktion requiredWinstVersion für seine eigene Versionsnummer - aber da ist bekannt, wie sie aufgebaut ist. Im Prinzip werden String-Vergleich für jeden der durch Punkt getrennten Abschnitte durchgeführt. Ist das ein allgemeintaugliches Verfahren?Vergleich von Versionsnummern (2.4.5, 7.8B3, 1.2_c, 9.0.1 (DE), etc.)
Gruß,
Rupert Röder
opsi support - uib gmbh
For productive opsi installations we recommend maintainance + support contracts which are the base of opsi development.
Wondering who's using opsi? Have a look at the opsi map: http://opsi.org/opsi-map/.
For productive opsi installations we recommend maintainance + support contracts which are the base of opsi development.
Wondering who's using opsi? Have a look at the opsi map: http://opsi.org/opsi-map/.
- embl-structures
- Beiträge: 327
- Registriert: 13 Jan 2010, 18:41
- Wohnort: Heidelberg
- Kontaktdaten:
Re: Wunsch: Funktion zum Vergleich von Versionsnummern
Im Detail hatte ich mir das noch nicht ueberlegt. Sicher ist 2.5.5>2.4.5>2.4.3. Aber das scheint wInst wie Sie schreiben, bereits in dieser Art zu handhaben. Komplexere Versionsnummern werden auch von den Entwicklern nicht immer gleich behandelt. Mal ist 1.2b>1.2, mal 1.2b<1.2....Vielleicht war der Vorschlag doch zu unausgegoren (entstanden beim Schreiben eines wInst-Skriptes). Ich denke, mit dem Standard-Stringvergleich von wInst kann ich erst mal leben.r.roeder hat geschrieben:was wäre denn der Algorithmus für einenVergleich von Versionsnummern (2.4.5, 7.8B3, 1.2_c, 9.0.1 (DE), etc.)
frank
- embl-structures
- Beiträge: 327
- Registriert: 13 Jan 2010, 18:41
- Wohnort: Heidelberg
- Kontaktdaten:
Re: Wunsch: Funktion zum Vergleich von Versionsnummern
Ich mache in diesem Thread weiter obwohl es jetzt eigentlich besser ins Support-Forum passen wuerde...
Einmal ist also 8.2.1<8.2.0 und dann ist 8.2.0<8.2.1... Was laeuft hier schief?
frank
Ich hatte verstanden, dass das in der aktuellen Implementation der Fall sei. Dass ich also "8.2.0" und "8.2.1" vergleich kann und das korrekte Resultat erhalte. Bei folgendem Code laeuft das Skript aber jedes Mal (!) durch den ersten if-Teil und nie durch den "else"-Teil:r.roeder hat geschrieben:Im Prinzip werden String-Vergleich für jeden der durch Punkt getrennten Abschnitte durchgeführt. Ist das ein allgemeintaugliches Verfahren?
Code: Alles auswählen
[Aktionen]
defvar $v1
defvar $v2
set $v1 = "8.2.0"
set $v2 = "8.2.1"
if ("$v1" < "$v2")
pause $v1 + " ist kleiner als " + $v2
else
pause $v2 + " ist kleiner als " + $v1
endif
set $v1 = "8.2.1"
set $v2 = "8.2.0"
if ("$v1" < "$v2")
pause $v1 + " ist kleiner als " + $v2
else
pause $v2 + " ist kleiner als " + $v1
endif
frank
- embl-structures
- Beiträge: 327
- Registriert: 13 Jan 2010, 18:41
- Wohnort: Heidelberg
- Kontaktdaten:
Re: Wunsch: Funktion zum Vergleich von Versionsnummern
Ich habe die Anfrage in Thread viewtopic.php?f=7&t=1223 verlagert
frank
frank
- embl-structures
- Beiträge: 327
- Registriert: 13 Jan 2010, 18:41
- Wohnort: Heidelberg
- Kontaktdaten:
Re: Wunsch: Funktion zum Vergleich von Versionsnummern
Ich komme nochmals auf diese Thread zurueck: Fuer WInst (v 4.10.8.0) scheint 3.6.9 >= 3.6.10 zu gelten. Deswegen ist der Stringvergleich wie er in WInst implementiert ist fuer meine Zwecke nicht brauchbar, weil er nur so lange funktioniert, wie die Terme zwischen den Punkten Einziffrig sind.r.roeder hat geschrieben:Hallo,
was wäre denn der Algorithmus für einenDer winst kann das in der Funktion requiredWinstVersion für seine eigene Versionsnummer - aber da ist bekannt, wie sie aufgebaut ist. Im Prinzip werden String-Vergleich für jeden der durch Punkt getrennten Abschnitte durchgeführt. Ist das ein allgemeintaugliches Verfahren?Vergleich von Versionsnummern (2.4.5, 7.8B3, 1.2_c, 9.0.1 (DE), etc.)
Gruß,
Rupert Röder
Ich reduziere die Anfrage also auf Versionsnummern vom Typ "Gruppen von durch Punkten getrennten Ziffern". Wie kann ich solche Versionsnummern vergleichen?
Gruss
frank
- j.schneider
- uib-Team
- Beiträge: 1810
- Registriert: 29 Mai 2008, 15:14
Re: Wunsch: Funktion zum Vergleich von Versionsnummern
Es gibt die Funktion CompareDotSeparatedStrings.
Code: Alles auswählen
if (CompareDotSeparatedStrings("3.6.9", "3.6.10") = 1)
- embl-structures
- Beiträge: 327
- Registriert: 13 Jan 2010, 18:41
- Wohnort: Heidelberg
- Kontaktdaten:
Re: Wunsch: Funktion zum Vergleich von Versionsnummern
Super! Offenbar ist die Version meines WInst-Handbuches deutlich aelter (version 4.9.0) als meine WInst-Versionj.schneider hat geschrieben:Es gibt die Funktion CompareDotSeparatedStrings.Code: Alles auswählen
if (CompareDotSeparatedStrings("3.6.9", "3.6.10") = 1)
frank