Improve company productivity with a Business Account.Sign Up

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 226
  • Last Modified:

ProbIem comparing 2 strings using INSTR

I have the following problem

I would like to compare the  2 strings below.
How can Extract the value between the first dot and the 2nd dot compare the 2 string if  equal proceed?


1)AppVersion=?3.4.0
    DbVersion=3.4.0

0r

2)AppVersion=?3.14.0
    DbVersion=3.14.0

Basically  I cannot find a way to compare the 2 strings and if equal proceed

What I thought was:

Dim Appversion as string,dbversion as string
Dim bwrongVersion as Boolean

1)AppVersion=?3.4.0
    DbVersion=3.4.0
0r
2)AppVersion=?3.14.0
    DbVersion=3.14.0

Bwrongversion= len(Appversion,4)<>len(dbversion,4)

If  bwrongversion then
     MsgBox?Unsuccessfull?
Else
       Msgbox?successful?
End if

The problem with this is that  if  the string is the second example the above  will fail.!!!!!!
##########################################################
So I thought

Dim   appverPos1 as string,appVerPos2 as string
Dim bwrongVersion as Boolean


AppVerpos1=instr(,appversion,?.?)     ?find the first dot
AppVerpos2=instr(3,appversion,?.?)  ?find the 2nd  dot

DbVerpos1=instr(,DbVersion,?.?)     ?find the first dot
Dbverpos2= instr(3, DbVersion,?.?)  ?find the 2nd  dot

AppVersionFinal=????????????????????  How can Extract the value between the first dot and the 2nd dot?

DbVersionFinal= ?????????????????????
How can Extract the value between the first dot and the 2nd dot?

Bwrongposition=??????????


Can you help?

Thanks
Gabriel
0
Gabriel_Brienza
Asked:
Gabriel_Brienza
  • 3
  • 3
  • 2
  • +1
1 Solution
 
Éric MoreauSenior .Net ConsultantCommented:
You need to format it this way:

    If Format(App.Major, "000") & "." & Format(App.Minor, "000") & "." & Format(App.Revision, "0000") < _
       Format(intMajor, "000") & "." & Format(intMinor, "000") & "." & Format(intRevision, "0000") _
    Then
0
 
gbarenCommented:
Try this:

Private Sub Command2_Click()
Dim s1 As String
Dim s2 As String
Dim p1 As Integer
Dim p2 As Integer

    s1 = "3.4.0"
    s2 = "3.4.0"
   
    p1 = InStr(s1, ".")
    p2 = InStr(p1 + 1, s1, ".")
    s1 = Mid(s1, p1 + 1, p2 - p1 - 1)
   
    p1 = InStr(s2, ".")
    p2 = InStr(p1 + 1, s2, ".")
    s2 = Mid(s2, p1 + 1, p2 - p1 - 1)

    If s1 = s2 Then
        MsgBox "They are equal"
    Else
        MsgBox "They are not equal"
    End If

End Sub
0
 
andyclapCommented:
or even:
if split(appVersion,".")(1)=split(dbVersion,".")(1)
 .. they're the same

0
Free Tool: ZipGrep

ZipGrep is a utility that can list and search zip (.war, .ear, .jar, etc) archives for text patterns, without the need to extract the archive's contents.

One of a set of tools we're offering as a way to say thank you for being a part of the community.

 
Gabriel_BrienzaAuthor Commented:
Thanks for your quick response
I think I made a mistake in explaining

I want to compare

 app.major=3 AND app.Minor=4 or 10-11 etc,
 app.revision= I dont need to check
 AGAINST DBVERSION.

so if app.major or app.minor have changed I need to
pick that!!
With the example below I think I can only pick app.minor
but not app.major if changes.
I hope I am clear.Thanks guys COULD YOU PLEASE clarify.


Dim AppVersion As String
Dim DbVersion As String
Dim p1 As Integer
Dim p2 As Integer

   AppVersion = "3.14.0"     (has to be able to pick up
   dbVersion=3.14.0"       changes in app.major and  
                            app.minor)
   
   
   p1 = InStr(AppVersion, ".")
   p2 = InStr(p1 + 1, AppVersion, ".")
   AppVersion = Mid(AppVersion, p1 + 1, p2 - p1 - 1)
   
   p1 = InStr(DbVersion, ".")
   p2 = InStr(p1 + 1, DbVersion, ".")
   DbVersion = Mid(DbVersion, p1 + 1, p2 - p1 - 1)

   If AppVersion = DbVersion Then
       MsgBox "They are equal"
   Else
       MsgBox "They are not equal"
   End If

End Sub
0
 
Éric MoreauSenior .Net ConsultantCommented:
You can try this:

AppVersion = "3.14.0"      
dbVersion="3.14.0"
 
  AppVersion = replace(AppVersion, ".", "")
 
  DBVersion = replace(DBVersion, ".", "")

  If AppVersion = DbVersion Then
      MsgBox "They are equal"
  Else
      MsgBox "They are not equal"
  End If

0
 
gbarenCommented:
How about this:


Private Sub Command2_Click()
Dim AppVersion As String
Dim dbVersion As String
Dim p1 As Integer
Dim p2 As Integer

    AppVersion = "3.4.0"
    dbVersion = "3.4.0"
   
    If VerMajor(AppVersion) <> VerMajor(dbVersion) Then
        MsgBox "Major version different"
    ElseIf VerMinor(AppVersion) <> VerMinor(dbVersion) Then
        MsgBox "Minor version different"
    Else
        MsgBox "They are the same"
    End If

End Sub


Function VerMajor(sVersion As String) As Integer
   
    VerMajor = CInt(Left(sVersion, InStr(sVersion, ".") - 1))
   
End Function


Function VerMinor(sVersion As String) As Integer
Dim p1 As Integer
Dim p2 As Integer

    p1 = InStr(sVersion, ".")
    p2 = InStr(p1 + 1, sVersion, ".")
    VerMinor = CInt(Mid(sVersion, p1 + 1, p2 - p1 - 1))
   
End Function
0
 
Gabriel_BrienzaAuthor Commented:
Thanks for your very good reply

I have to say that also the other answer from Emoreu was good.
I don't know how to give points to two people at the same time.So I had to choose

Thanks for your help .
Gabriel
0
 
Éric MoreauSenior .Net ConsultantCommented:
<I don't know how to give points to two people at the same time>

You need to post a new "dummy" question for that like "for emoreau ie 20138142"
0
 
Gabriel_BrienzaAuthor Commented:
For Emoreau

I checked your code and it's very slicky and good
but it fails there is a change in the app.revision

it should only check major and minor.

Anyway
I think your answer was good
Thanks
Gabriel
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

Featured Post

Free Tool: Path Explorer

An intuitive utility to help find the CSS path to UI elements on a webpage. These paths are used frequently in a variety of front-end development and QA automation tasks.

One of a set of tools we're offering as a way of saying thank you for being a part of the community.

  • 3
  • 3
  • 2
  • +1
Tackle projects and never again get stuck behind a technical roadblock.
Join Now