Имя пользователя:
Пароль:
 

Название темы: Текстовые файлы
Показать сообщение отдельно

Ветеран


Contributor


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

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


Если файл один, Имя можно прописывать явным образом в скрипте.
Если один или несколько, их можно перечислить в аргументе скрипта в кавычках при вызове.
Можно создать значок на скрипт на, например, рабочем столе, помечать в проводнике файл или группу файлов и в проводнике затягивать на него мышкой помеченные файлы
Код: Выделить весь код
FileIn1 = "Z:\Box_In\playlist.txt"

RegExp = "  *]"
Rep = "]"

ReDim FileIn(0)
MM = 0
FileIn(0) = FileIn1

With WScript.Arguments
    If .Count <> 0 Then
    MM = .Count - 1
    ReDim FileIn(MM)
    For m = 0 To MM
            FileIn(m) = .Item(m)
    Next
    End If
End With

Msg = ""
Set FSO = CreateObject("Scripting.FileSystemObject")
For m = 0 To MM
    If Contr1(FSO, FileIn(m), InTxt, Msg) Then
        If Contr2(FileIn(m), RegExp, InTxt, Rep, Msg) Then
            With FSO.CreateTextFile(FileIn(m), True)
                .Write InTxt
                .Close
                Msg = Msg + FileIn(m) + " ==Done" + vbCrLf
            End With
        End If
    End If
Next
MsgBox Msg

Function Contr1(FSO, fName, txt, MS)
    Contr1 = False
    On Error Resume Next
    With FSO.OpenTextFile(fName, 1)
        If Err.Number <> 0 Then
            MS = MS + "--- " + fName + vbCrLf + "    Error open file. Err.Number=" + CStr(Err.Number) + "  " + Err.Description + vbCrLf
            On Error GoTo 0
            Exit Function
        End If
        txt = .ReadAll
        If Err.Number <> 0 Then
            MS = MS + "--- " + fName + vbCrLf + "    Error read file. Err.Number=" + CStr(Err.Number) + "  " + Err.Description + vbCrLf
            On Error GoTo 0
            Exit Function
        End If
        .Close
    End With
    On Error GoTo 0
    Contr1 = True
End Function

Function Contr2(fName, RExp, txt, RR, MS)
    Contr2 = False
    With CreateObject("VBScript.RegExp")
        .Pattern = RExp
        .IgnoreCase = True
        .Global = True
        If Not .Test(txt) Then
            MS = MS + "--- " + fName + vbCrLf + "    no replace." + "    Reg expression: " + """" + RExp + """" + vbCrLf
            Exit Function
        End If
        txt = .Replace(txt, RR)
    End With
    Contr2 = True
End Function

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


Отправлено: 21:33, 09-08-2019 | #8

Название темы: Текстовые файлы