PDA

Показать полную графическую версию : Поиск строки с определенными символами


dima9069
21-12-2012, 22:49
Уважаемые, прошу поделиться мнениями по поводу вот такой задачи автоматизации: есть текстовый файл 1.txt (http://forum.oszone.net/attachment.php?attachmentid=91827&stc=1&d=1356116124), необходимо организовать какой-то цикл, в кот. нужно искать строки с определенными символами (допустим названия сайтов) и впереди этих строк поставить 2 знака "//". Возможно ли такое?

Iska
22-12-2012, 04:47
есть текстовый файл 1.txt (http://forum.oszone.net/attachment.p...&d=1356116124), »
Страница не найдена.

dima9069
22-12-2012, 16:16
Извиняюсь http://rghost.ru/private/42427105/ded54c545edc4e1b9fbd236c5708de5b

Iska
22-12-2012, 16:39
dima9069, теперь выложите ещё один файл — результирующий. Пока не очень понятно, куда подставлять.

dima9069
22-12-2012, 17:46
http://rghost.ru/private/42427105/de...bd236c5708de5b а возможен поиск такого к примеру "starsbux.ru"

Iska
22-12-2012, 17:57
http://rghost.ru/private/42427105/de...bd236c5708de5b »
С какой попытки научитесь вставлять ссылки?
404 this page is not found

dima9069
22-12-2012, 18:02
http://rghost.ru/private/42430223/9287459085268caf1cddae747a0b67f3 - эта уж точно

Iska
22-12-2012, 18:28
dima9069, Вы явно меня не поняли. Мне не нужны два одинаковых файла. Я просил Вас взять первый файл (http://forum.oszone.net/post-2051012.html#post2051012), поставить «ручками» в нужных местах символы «//», сохранить его под другим именем и выложить именно его.

dima9069
22-12-2012, 18:44
А ну тогда второй файл http://rghost.ru/private/42431443/01f7bd48d8cdd655f56497fd81543e8d

Iska
22-12-2012, 19:18
dima9069, сожалею, но я не могу понять Вашей логики.

dima9069
22-12-2012, 19:26
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 может быть неизвестно сколько знаков

Iska
23-12-2012, 07:48
dima9069, почему тогда Вы не вставили «//» перед прочими строками?

dima9069
26-12-2012, 00:54
Iska, сделать бы задачу хотя бы для одного названия сайта было бы неплохо

Iska
26-12-2012, 06:44
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
'=============================================================================

Имя/путь исходного файла задавайте параметром скрипта (можно просто перетащить Ваш файл на скрипт в Проводнике).




© OSzone.net 2001-2012