Как прочитать и заменить строку в файле в VB? - PullRequest
1 голос
/ 11 января 2012

К сожалению, мои знания VB очень минимальны, но мне нужен скрипт, чтобы сделать следующее: У меня есть файл Licenses.txt, который содержит одну лицензию на строку:
License 1
License 2
License 3

У меня есть другой файл response.ini, который имеет значение ProductKey в следующем формате: ProductKey=XXXXX-XXXXXX-XXXXXX-XXXX

Я хочу сделать следующее:
Прочитайте из Licenses.txt первую лицензию. Если оно бесплатное (лицензия бесплатна, если после нее лицензия не остается Used), то она должна заменить значение XXXXX-XXXXXX-XXXXXX-XXXX в response.ini и поставить Used после первой лицензии, поэтому в License.txt это должно остаться License 1 - Used. Если я запустил его снова, он должен использовать вторую лицензию и поставить Used после нее и т. Д. Если у меня нет бесплатной лицензии, я должен получить сообщение ErrorMessage.

Надеюсь, вы понимаете, что я хочу сделать. Кто-нибудь может мне помочь?

Спасибо!

1 Ответ

1 голос
/ 03 февраля 2012

Вот скрипт, который будет делать именно то, что вы хотите.

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...