'1.97' = '1.a'
'1.23' = '12.3'
ich glaub ein/zwei Sachen mußt'e noch anpassen.
Tipp: Strings nicht in Zahlen umwandeln und die Strings vorher an Zahlen-/Buchstabengrenzen aufteilen, sowie den Punkt nicht ignorieren und alles was über Punkte (das sind ja typische Versionsnummernteileteiler

) getrennt vergleichen.
Jau, für die Problematiken benutze ich ähnlichen Code wie den hier:
Delphi-Quellcode:
//Aus 12.34.56.7890 eine auswertbare Zahl 1234567890 machen
//Funktioniert nur solange die Zahlen 2/4(build)stellig bleiben!
V1 := (StrToInt(Params[0]) * 100000000) +
(StrToInt(Params[1]) * 1000000) +
(StrToInt(Params[2]) * 10000) +
(StrToInt(Params[3]) * 1);
V2 := (StrToInt(Params[4]) * 100000000) +
(StrToInt(Params[5]) * 1000000) +
(StrToInt(Params[6]) * 10000) +
(StrToInt(Params[7]) * 1);
Kann man ja dann noch entsprechend generalisieren, abh. vom Format des Versionstrings.