Смена програмно 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