Jump to content

Recommended Posts

Posted

In the present product I have version in the About section as  4 section one like (10.00.00.2456)

And the version in other products I have version number like (97.000.2456 , 10.000.2345)

 

Is there any UDF or function to convert 4 digit format to 3 digit one.?

I need that for version comparison of different products.

Posted
39 minutes ago, Subz said:

Why not use _VersionCompare function?

It won't work in this case as the format is different.

As the first string is 10.000.2345 and second is 10.00.00.2345.And the VersionCompare will result as -1

Posted

Why would it be equal?  It's normally implied that a version has four sections, when one section is omitted it assumes 0, so 10.000.2345 would become 10.000.2345.0.

  • 10 = Major revision
  • 00 = Minor revision

The last two can be mixed depending on the developer

  • 00 = Patch release
  • 2345 = Build number
Posted

The 4 version format is olde format in window and it is converted to 3 section format from windowws 7 onwards.

If you check in server 2008, both file and product version of a exe are 4 section and from windows 2012 it is different.

So , if we leave about the standards, is there any solution to convert the 4 section to 3 section format.?

Posted

Actually, the  first string is 10.000.2345 and second is 10.00.00.2345

As the 4 section one, 2nd and 3rd should be merged.

may be if 10.01.34.2345 then it merged as 10.134.2345

if 10.00.34.2345 then it merged as 10.034.2345

 

 

Posted

No, I tried to code, but someone in my team mentioend that a solition already exists as UDF in the portal.

 

  • Developers
Posted
3 minutes ago, ur said:

No, I tried to code, but someone in my team mentioend that a solition already exists as UDF in the portal.

No idea what this means. What did you try to code? 
It could very well be somebody tackled this issue before but to me it is as simple as this:

#include <Misc.au3>

Func _My_VersionCompare($sVersion1, $sVersion2)
    $V1 = StringSplit($sVersion1, ".")
    $V2 = StringSplit($sVersion2, ".")
    If $V1[0] = 4 Then
        $sVersion1 = $V1[1] & "." & $V1[2] & $V1[3] & "." & $V1[4]
    EndIf
    If $V2[0] = 4 Then
        $sVersion2 = $V2[1] & "." & $V2[2] & $V2[3] & "." & $V2[4]
    EndIf
    Return _VersionCompare($sVersion1, $sVersion2)
EndFunc   ;==>_My_VersionCompare


ConsoleWrite('_VersionCompare("10.000.2345", "10.00.00.2345") = ' & _VersionCompare("10.000.2345", "10.00.00.2345") & '    >Error code: ' & @error & @CRLF) ;### Debug Console
ConsoleWrite('_My_VersionCompare("10.000.2345", "10.00.00.2345") = ' & _My_VersionCompare("10.000.2345", "10.00.00.2345") & '    >Error code: ' & @error & @CRLF) ;### Debug Console

Agree? :)

Jos

SciTE4AutoIt3 Full installer Download page   - Beta files       Read before posting     How to post scriptsource   Forum etiquette  Forum Rules 
 
Live for the present,
Dream of the future,
Learn from the past.
  :)

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...