Поиск строки с определенными символами
Уважаемые, прошу поделиться мнениями по поводу вот такой задачи автоматизации: есть текстовый файл 1.txt ( http://forum.oszone.net/attachment.p...&d=1356116124), необходимо организовать какой-то цикл, в кот. нужно искать строки с определенными символами (допустим названия сайтов) и впереди этих строк поставить 2 знака "//". Возможно ли такое?
|
Цитата:
Цитата dima9069
есть текстовый файл 1.txt (http://forum.oszone.net/attachment.p...&d=1356116124), »
|
|
dima9069, теперь выложите ещё один файл — результирующий. Пока не очень понятно, куда подставлять.
|
Цитата:
Цитата dima9069
http://rghost.ru/private/42427105/de...bd236c5708de5b »
|
С какой попытки научитесь вставлять ссылки?
Цитата:
404 this page is not found
|
|
dima9069, Вы явно меня не поняли. Мне не нужны два одинаковых файла. Я просил Вас взять первый файл, поставить «ручками» в нужных местах символы «//», сохранить его под другим именем и выложить именно его.
|
dima9069, сожалею, но я не могу понять Вашей логики.
|
Cмотрите строка до изменения
jl[1]0lh[2][3]starsbux.ru[4][5][6]gregbux.ru[7]c576a44d915ad167f5f25d9c631041c4[8][9]000[10]0[11]0[12][13][14]<none>[15]
и строка после изменения
//jl[1]0lh[2][3]starsbux.ru[4][5][6]gregbux.ru[7]c576a44d915ad167f5f25d9c631041c4[8][9]000[10]0[11]0[12][13][14]<none>[15]
но строк может быть много. Т.е. перед starsbux.ru может быть неизвестно сколько знаков
|
dima9069, почему тогда Вы не вставили «//» перед прочими строками?
|
Iska, сделать бы задачу хотя бы для одного названия сайта было бы неплохо
|
dima9069, всё равно мало информации для того, чтобы однозначно определять имена сайтов. Максимум, на что можно тут ориентироваться — на имена корневых доменов. Плюс символы перенаправления «<»/«>» внутри текстового файла.
Попробуйте WSH:
читать дальше »
Код:
Option Explicit
Dim strSourceFile
Dim strTempFileName
Dim objRegExp
Dim objFSO
Dim objTS
Dim strLine
If WScript.Arguments.Count = 1 Then
strSourceFile = WScript.Arguments.Item(0)
With WScript.CreateObject("Scripting.FileSystemObject")
If .FileExists(strSourceFile) Then
Set objRegExp = WScript.CreateObject("VBScript.RegExp")
With objRegExp
.IgnoreCase = True
.Pattern = ".*\.(com|org|net|info|ru)[^a-z].*"
End With
strTempFileName = GetTemporaryName()
Set objTS = .CreateTextFile(strTempFileName)
With .OpenTextFile(strSourceFile)
Do Until .AtEndOfStream
strLine = .ReadLine()
If objRegExp.Test(strLine) Then
objTS.WriteLine "//" & strLine
Else
objTS.WriteLine strLine
End If
Loop
.Close
End With
objTS.Close
Set objTS = Nothing
With .GetFile(strSourceFile)
.Name = .Name & ".bak"
End With
.CopyFile strTempFileName, strSourceFile
.DeleteFile strTempFileName
Else
WScript.Echo "Source file [" & strSourceFile & "] not found"
End If
End With
Set objRegExp = Nothing
Else
WScript.Echo "Usage: cscript.exe //nologo " & WScript.ScriptName & " <Source file>"
End If
WScript.Quit 0
'=============================================================================
'=============================================================================
' Серый форум / vbscript: генерация пути для временного файла или папки
' (http://forum.script-coding.com/viewtopic.php?id=1221)
'=============================================================================
Function GetTemporaryName()
Const TemporaryFolder = 2
Dim strTempName
With WScript.CreateObject("Scripting.FileSystemObject")
Do
strTempName = .BuildPath(.GetSpecialFolder(TemporaryFolder), .GetTempName)
Loop While .FileExists(strTempName) Or .FolderExists(strTempName)
End With
GetTemporaryName = strTempName
End Function
'=============================================================================
Имя/путь исходного файла задавайте параметром скрипта (можно просто перетащить Ваш файл на скрипт в Проводнике).
|
Время: 04:33.
© OSzone.net 2001-