Смена програмно MajorVer, MinorVer, RevisionVer - VB

Узнай цену своей работы

Формулировка задачи:

Всем привет! Как-то натыкался на пример, где

MajorVer, MinorVer, RevisionVer...

меняли програмно... Не подскажите?

Решение задачи: «Смена програмно MajorVer, MinorVer, RevisionVer»

textual
Листинг программы
    HomeDir=Wscript.ScriptFullName
 
    k=InstrRev(HomeDir,"\")
 
    HomeDir=Left(HomeDir,(k-1))
 
    ':::
    '::: Создаем новый модуль verinfo.bas
    ':::
 
    Set myFSO = CreateObject("Scripting.FileSystemObject")
 
    Set gFil=myFSO.CreateTextFile(HomeDir & "\verinfo.bas",True) 
 
    gFil.WriteLine "Attribute VB_Name = ""verinfo""" 
    gFil.WriteLine "Public Const Date_Build = """ & Cstr(Date) & """"
    gFil.WriteLine "Public Const Time_Build = """ & Cstr(Time) & """"
 
    gFil.Close
 
    ':::
    '::: Находим Major, Minor, Revision (по IDE-проекту)
    ':::
 
    Set filIDE=myFSO.GetFile(HomeDir & "\lispik-ide.vbp")
    Set isIDE=filIDE.OpenAsTextStream(1)
    Buf=isIde.ReadAll() 
    isIDE.Close
    Set filIDE=Nothing
    
    k=Instr(Buf,"MajorVer")
 
    if (k > 0) then 
       p=Instr(k,Buf,vbCrlf)
       Major=mid(Buf,(k+9),(p-k-9))
    end if
 
    k=Instr(Buf,"MinorVer")
 
    if (k > 0) then 
       p=Instr(k,Buf,vbCrlf)
       Minor=mid(Buf,(k+9),(p-k-9))
    end if
 
    k=Instr(Buf,"RevisionVer")
 
    if (k > 0) then 
       p=Instr(k,Buf,vbCrlf)
       Revision=mid(Buf,(k+12),(p-k-12))
    end if
 
    Revision=Cstr(Cint(Revision)+1)
 
    ':::
    '::: Запрос
    ':::
 
    Do
 
       Resp=InputBox( "Подтвердите номер версии","Major.Minor.Revision",Cstr(major) & "." & Cstr(minor) & "." & Cstr(Revision) )
 
       If Resp="" then exit Do
 
       k=Instr(Resp,".")
 
       if (k <= 1) then 
 
          MsgBox "Вы ошиблись!"
 
       else
 
          Major=Left(Resp,(k-1))
 
          Resp=mid(Resp,(k+1))
             
          k=Instr(Resp,".")
 
          if (k <= 1) then 
 
             MsgBox "Вы ошиблись!"
 
          Else
 
             Minor=Left(Resp,(k-1))
 
             Revision=mid(Resp,(k+1))
             
             If len(Revision)=0 then
                
                MsgBox "Вы ошиблись!"
 
             else
 
                Exit Do
       
             end if
 
          End if
 
       End if
 
    Loop    
 
    ':::
    '::: Во всех модулях обновляем номера версии
    ':::
 
    Act_vbp "lispik-ide.vbp",myFSO,HomeDir,Major,Minor,Revision
    Act_vbp "lispik-exe.vbp",myFSO,HomeDir,Major,Minor,Revision
    Act_vbp "lispik-lib.vbp",myFSO,HomeDir,Major,Minor,Revision
    Act_vbp "lispik-web.vbp",myFSO,HomeDir,Major,Minor,Revision
    Act_vbp "lispik-csc.vbp",myFSO,HomeDir,Major,Minor,Revision
    Act_vbp "lispik-wsc.vbp",myFSO,HomeDir,Major,Minor,Revision
 
    MsgBox "OK!"
 
'#### Конец ####
 
Sub Act_vbp(fnam,myFSO,HomeDir,Major,Minor,Revision)
 
    Set filIDE=myFSO.GetFile(HomeDir & "\" & fnam)
    Set isIDE=filIDE.OpenAsTextStream(1)
    Buf=isIde.ReadAll() 
    isIDE.Close
 
    k=Instr(Buf,"MajorVer")
 
    if (k > 0) then 
       p=Instr(k,Buf,vbCrlf)
       oMajor=mid(Buf,k,(p-k))
    end if
 
    Buf=Replace(Buf,oMajor, "MajorVer=" & Cstr(Major))
 
    k=Instr(Buf,"MinorVer")
 
    if (k > 0) then 
       p=Instr(k,Buf,vbCrlf)
       oMinor=mid(Buf,k,(p-k))
    end if
 
    Buf=Replace(Buf,oMinor, "MinorVer=" & Cstr(Minor))
 
    k=Instr(Buf,"RevisionVer")
 
    if (k > 0) then 
       p=Instr(k,Buf,vbCrlf)
       oRevision=mid(Buf,k,(p-k))
    end if
 
    Buf=Replace(Buf,oRevision, "RevisionVer=" & Cstr(Revision))
 
    Set isIDE=filIDE.OpenAsTextStream(2)
    isIde.Write(Buf)
    isIDE.Close
    Set filIDE=Nothing
 
End Sub

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

9   голосов , оценка 3.889 из 5
Похожие ответы