View previous topic :: View next topic |
Author |
Message |
Batya
Joined: 15 Dec 2004 Posts: 2218 Location: Москва, Россия
|
(Separately) Posted: Fri Jun 24, 2011 16:28 Post subject: |
|
|
shveicar wrote: | Ну конечно, речь идет именно о замене фрагмента текста в теге, как я и пытался (видимо не совсем понятно) объяснить. |
И даже сейчас ты не доходчиво объясняешь. То, что ты хочешь, я понял исключительно из описанной тобой процедуры проверки.
Ясно, что нужно заменить текст в файлах. Но что текст для замены нужно брать из соответствующей строки другого файла, это было неясно. _________________ Нет, я не сплю. Я просто медленно моргаю. |
|
Back to top |
|
|
shveicar
Joined: 18 Apr 2011 Posts: 277 Location: Россия Москва
|
(Separately) Posted: Fri Jun 24, 2011 16:35 Post subject: |
|
|
Извиняюсь, на будущее учту. |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Fri Jun 24, 2011 16:45 Post subject: |
|
|
Batya wrote: | Но что текст для замены нужно брать из соответствующей строки другого файла, это было неясно. | А мне сразу было ясно: Quote: | Замена должна производиться из тексового файла в котором список ссылок для замены. ....
Естественно число html файлов и число ссылок в текстовом файле совпадают, то есть в каждом выделенном файле html производится замена одной ссылки на одну ссылку по порядку из текстового файла списка. |
|
|
Back to top |
|
|
Batya
Joined: 15 Dec 2004 Posts: 2218 Location: Москва, Россия
|
(Separately) Posted: Fri Jun 24, 2011 16:56 Post subject: |
|
|
Flasher wrote: | А мне сразу было ясно |
Ты счастливый человек - ничего не отвлекает от проблем TC посреди рабочего дня. _________________ Нет, я не сплю. Я просто медленно моргаю. |
|
Back to top |
|
|
Avada
Joined: 01 Aug 2008 Posts: 10263 Location: Россия, Саратов
|
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Sat Jun 25, 2011 23:07 Post subject: |
|
|
shveicar
Честно пытался сделать набросок, но выходит не пойми чего:
Code: | ' Замена в содержимом каждого из выделенных файлов строки на строку из файла списка
' в соответствии с сортировкой в активной панели и порядком следования в списке
' Параметры: %L "<Путь к файлу со списком замен>"
'================================================
T=CreateObject("WScript.Shell").ExpandEnvironmentStrings(WScript.Arguments(1))
Str="<META HTTP-EQUIV=""Refresh"" CONTENT=""0; URL=prise.zip"">"
With CreateObject("Scripting.FileSystemObject")
Set Temp = .GetFile(WScript.Arguments(0)).OpenAsTextStream(1)
Set List = .GetFile(T).OpenAsTextStream(1)
On Error Resume Next
Do While Not Temp.AtEndOfStream And Not List.AtEndOfStream
If Abs(Temp.Line)=Abs(List.Line) Then
Set F = .OpenTextFile(Temp.ReadLine,1)
Str1 = Left(List.ReadLine,Len(List.ReadLine))
R = Replace(F.ReadAll, Str, "<META HTTP-EQUIV=""\Refresh"" CONTENT=""0; URL=" & Str1 & """>",1,1,1)
.OpenTextFile(Temp.ReadLine,2).Write R
F.Close
End If
Loop
End With
WScript.Quit | Тут какое-то условие нужно особое. В общем, надо ждать Батю, пусть поправит, где я промахнулся. |
|
Back to top |
|
|
Batya
Joined: 15 Dec 2004 Posts: 2218 Location: Москва, Россия
|
(Separately) Posted: Mon Jun 27, 2011 18:11 Post subject: |
|
|
shveicar wrote: | Пытаюсь проверить - жму кнопку скрипта ничего не происходит. |
Изменил свой скрипт.
Изменилась и кнопка.
Проверь. _________________ Нет, я не сплю. Я просто медленно моргаю. |
|
Back to top |
|
|
shveicar
Joined: 18 Apr 2011 Posts: 277 Location: Россия Москва
|
(Separately) Posted: Tue Jun 28, 2011 01:27 Post subject: |
|
|
Спасибо Batya - Ваш скрипт работает! (единственное путь к файлу filelist.txt
пришлось указывать полностью) в начальном варианте не работает, поясняю- работает с таким кодом кнопки Code: | TOTALCMD#BAR#DATA
%COMMANDER_PATH%\Utils\html\zamema_po_sablonu.vbs
"<META HTTP-EQUIV='Refresh' CONTENT='0; URL=prise.zip'>" "<META HTTP-EQUIV='Refresh' CONTENT='0; URL=%%FromFileArr%%'>" 1 %L "f:\total\Utils\html\filelist.txt"
F:\WINDOWS\System32\WScript.exe
zamema_po_sablonu
0
-1
| Ну это не существенно. главное результат! Еще раз огромное Cпасибо! |
|
Back to top |
|
|
Batya
Joined: 15 Dec 2004 Posts: 2218 Location: Москва, Россия
|
(Separately) Posted: Tue Jun 28, 2011 09:26 Post subject: |
|
|
shveicar wrote: | единственное путь к файлу filelist.txt пришлось указывать полностью |
Естесственно, я же чисто схематично привёл кнопку и не знаю путь к твоему filelist.txt.
Справедливости ради надо отметить, что может работать и без указания полного пути, если кнопка нажимается, когда текущей папкой является та, где лежит filelist.txt. А также будет работать, если заполнен "Путь запуска" кнопки, и filelist.txt лежит в этой папке. _________________ Нет, я не сплю. Я просто медленно моргаю. |
|
Back to top |
|
|
shveicar
Joined: 18 Apr 2011 Posts: 277 Location: Россия Москва
|
(Separately) Posted: Tue Jun 28, 2011 13:04 Post subject: |
|
|
Quote: | А также будет работать, если заполнен "Путь запуска" кнопки, и filelist.txt лежит в этой папке | А вот этот вариант я не учел. Для меня - он пожалуй самый удобный! Еще раз - премного благодарен! |
|
Back to top |
|
|
shveicar
Joined: 18 Apr 2011 Posts: 277 Location: Россия Москва
|
(Separately) Posted: Thu Jul 21, 2011 20:29 Post subject: |
|
|
Добрый вечер. Batya - а возможно в Замечательном скрипте Добавить окно для ввода заменяемого текста, просто часто, в разных тегах попадается одинаковые значения для замены из файла списка, и приходится каждый раз менять параметры в кнопке( бывают длинные выражения), вобщем, сегодня пол-дня провел, чтобы заменить 5 одинаковых строчек в разных тегах. Конечно без скрипта, учитывая объем файлов, потребовалась наверное, неделя, Но Если такое возможно, Буду очень признателен, Спасибо. |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Thu Jul 21, 2011 20:41 Post subject: |
|
|
Если не ошибаюсь, заменить Code: | With WScript
Str1 = .Arguments(0)
Str2 = .Arguments(1)
Mode = .Arguments(2)
FF = .Arguments(3)
If .Arguments.Count > 4 Then FZ = .Arguments(4)
End With | на Code: | Str1 = InputBox("Введите искомую строку:", "Замена текста в файлах с помощью шаблонов")
With WScript
Str2 = .Arguments(0)
Mode = .Arguments(1)
FF = .Arguments(2)
If .Arguments.Count > 3 Then FZ = .Arguments(3)
End With | В параметрах не использовать первый исходный.
Last edited by Flasher on Thu Jul 21, 2011 23:04; edited 2 times in total |
|
Back to top |
|
|
shveicar
Joined: 18 Apr 2011 Posts: 277 Location: Россия Москва
|
(Separately) Posted: Thu Jul 21, 2011 21:21 Post subject: |
|
|
Спасибо, окно конечно появляется, но после ввода текста, - появляется еще одно окно для ввода текста замены, а речь идет о замене текста из строчек текстового файла, filelist.txt И потом как же быть с параметрами в кнопке("проблема" двойных кавычек), по идее в итоге. в кнопке должны остаться параметры Code: | 0 %L "filelist.txt" | или Code: | 1 %L "filelist.txt" | в зависимости от тега пример для первого случая значение в кнопке 0 Code: | "('flvpla1/player.swf','mplayer','640','380','9','000000')" "('%%FromFileArr%%','mplayer','640','380','9','000000')" 0 %L "filelist.txt" | и для второго случая значение1 Code: | "<a href='flvpla1/player.swf' rel='nofollow'>" "<a href='%%FromFileArr%%' rel='nofollow'>" 1 %L "filelist.txt" | только, во втором случае приходится в ручную менять двойные кавычки в теге, на одинарные, а - это крайне не удобно. поясню - в исходном варианте2, оригинал тега выглядит Code: | <a href="flvpla1/player.swf" rel="nofollow"> |
|
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Thu Jul 21, 2011 21:39 Post subject: |
|
|
shveicar wrote: | Спасибо, окно конечно появляется, но после ввода текста, - появляется еще одно окно для ввода текста замены, а речь идет о замене текста из строчек текстового файла | Так и в скрипте и в кнопке фигурируют строки как для поиска, так и для замены. В чём проблема?
shveicar wrote: | только, во втором случае приходится в ручную менять двойные кавычки в теге, на одинарные, а - это крайне не удобно. | А как удобно? Чтобы автоматически определялось, ставить кавычки или нет? Или по умолчанию для искомой строки без кавычек, а для той, на которую производится замена, с? |
|
Back to top |
|
|
shveicar
Joined: 18 Apr 2011 Posts: 277 Location: Россия Москва
|
(Separately) Posted: Thu Jul 21, 2011 22:33 Post subject: |
|
|
Наверно я чего - то не понимаю, Попытаюсь разобраться подробнее(выделяем группу файлов html) первый выделенный файл в списке - 1.html Cтрока для поиска Code: | ('flvpla1/player.swf','mplayer','640','380','9','000000') | строка для замены Code: | "('%%FromFileArr%%','mplayer','640','380','9','000000')" | параметр - подразумевает вставку строки №1 из файла - filelist.txt и так далее, число строк и число выделенных html файлов совпадает(строки в filelist.txt все разные). Вариант с кнопкой -работает, вариант с окном выдает ошибку.(кавычки я пока не рассматриваю). По идее вариант с окном должен выглядеть так - выделяем группу html файлов filelist.txt лежит в той-же папке. жмем кнопку - появляется окно со строкой поиска, вводим желаемый тег (в данном случае ) нажимаем ок, и все совпадения во всех выделенных html файлах ( при условии одно совпадение в одном файле) меняются на значения из файла списка filelist.txt Если в каждом html файле например - два совпадения, тогда в параметрах кнопки стоит цифра2 (естественно что количество совпадений во всех html файлах одинаковое то есть 2), если три то 3. Ну вот, примерно такой вариант я имел ввиду. |
|
Back to top |
|
|
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
Powered by phpBB © 2001, 2005 phpBB Group
|