Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Показать сообщение отдельно

Ветеран


Contributor


Сообщения: 2728
Благодарности: 1697

Профиль | Отправить PM | Цитировать


Вложения
Тип файла: rar ModiIn.rar
(906 байт, 176 просмотров)

Код: Выделить весь код
' -----------------------------------------------------------------------------------
' Скрипт считывает указанный полным путём текстовый файл (переменная InName)
' В файле ищется первое вхождение каждой из двух подстрок (переменная Str1 и Str2)
'	(эти подстроки должны быть в начале строки без лидирующих пробелов!)
' Найденная строки заменяются на строки соответственно вида Str1+EqStr1	и Str2+EqStr2
' Строки EqStr1	и EqStr2 передаются в аргументах скрипта
' Полученный результат запис на место старого файла
' -----------------------------------------------------------------------------------
' Пример использования из командной строки
' H:\Delete\ModiIn.vbs "123.456.789.012" "3456"
' -----------------------------------------------------------------------------------

    InName = "H:\Delete\kuku.txt"
    
    Str1 = "Server_address="
    Str2 = "Server_port="

    Set InArg=WScript.Arguments

    EqStr1 = InArg(0)
    EqStr2 = InArg(1)

'    EqStr1 = "111.222.333.444"
'    EqStr2 = "5555"
    
    Set FSO = CreateObject("Scripting.FileSystemObject")
    Set InFile = FSO.OpenTextFile(InName, 1, False)
    
    AllStr = InFile.ReadAll
    InFile.Close
    
    AllStr = Replace(AllStr, Chr(10), "")
    Mass = Split(AllStr, Chr(13))
    i1 = LBound(Mass)
    i2 = UBound(Mass)
    
    Call ModiIniSub(Mass, i1, i2, Str1, EqStr1)
    Call ModiIniSub(Mass, i1, i2, Str2, EqStr2)
    
    Set InFile = FSO.OpenTextFile(InName, 2, False)
    For i = i1 To i2
        If i <> i2 Then
            InFile.WriteLine Mass(i)
        Else
            InFile.Write Mass(i)
        End If
    Next
    InFile.Close
    
    
Sub ModiIniSub(Mass, i1, i2, Stroka, EqStroka)
    LStroka = Len(Stroka)
    For i = i1 To i2
        If Mid(Mass(i), 1, LStroka) = Stroka Then
            Mass(i) = Stroka + EqStroka
            Exit For
        End If
    Next
End Sub
Исходник в файле

-------
Даже самая сложная проблема обязательно имеет простое, лёгкое для понимания, неправильное решение. Каждое решение плодит новые проблемы.

Это сообщение посчитали полезным следующие участники:

Отправлено: 13:30, 30-04-2010 | #10