2012-01-11 4 views
1

は、残念ながら私のVBの知識は非常に最小限のですが、私は次の操作を実行するスクリプトが必要:
License 1
License 2
License 3VBでファイル内の文字列を読み込んで置き換える方法は?

I: は、私は1行につき1つのライセンスが含まれているファイルLICENSES.TXTを、持っています私は次の操作を実行したいProductKey=XXXXX-XXXXXX-XXXXXX-XXXX

:この形式で値ProductKeyを持っている他のファイルresponse.iniを、持っているLICENSES.TXTから
読むモミstライセンス。無料の場合(ライセンスはUsedのままであれば無料です)、最初のライセンスの後にUsedという値をUsedと置き換えてください。したがって、License.txtにはLicense 1 - Usedのままにしておいてください。もし私がもう一度それを実行すると、それは2番目のライセンスを使用し、Usedなどの後に置く必要があります。私は無料のライセンスを持っていない場合、私はErrorMessageを取得する必要があります。

私がしたいことを理解できたらうれしいです。誰か助けてくれますか?

ありがとうございます!

答えて

1

これは、あなたが望むものを正確に行うスクリプトです。

Dim oFSO : Set oFSO = CreateObject("Scripting.FileSystemObject") 

'Read the licence.txt file 
Dim f : Set f = oFSO.OpenTextFile("Licence.txt", 1) 
Dim sData : sData = f.ReadAll 
f.close 

'Find next available licence 
licenceKey = "" 
Dim sLine : for each sLine in split(sData, vbNewLine) 
    if (lcase(right(sLine,7)) <> " - used") then 
     licenceKey = sLine 
     exit for 
    end if 
Next 

if (licenceKey = "") then 
    'Show error if no licences are available 
    msgbox "No available licences! ", vbOkOnly + vbexclamation, "Licence" 
else 
    'Write a Response.ini file 
    Set f = oFSO.OpenTextFile("Response.ini", 2, true) 
    f.Write licenceKey 
    f.close 

    'Mark the licence as used 
    sData = replace(sData, licenceKey, licenceKey & " - Used") 

    'ReWrite the licence.txt file 
    Set f = oFSO.OpenTextFile("Licence.txt", 2) 
    f.Write sData 
    f.close 
end if 
関連する問題