Total Commander Forum Index Total Commander
Форум поддержки пользователей Total Commander
Сайты: Все о Total Commander | Totalcmd.net | Ghisler.com | RU.TCKB
 
 RulesRules   SearchSearch   FAQFAQ   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Редактирование файлов (вырезать, вставить, массово)
Goto page Previous  1, 2, 3, 4, 5  Next
 
Post new topic   Reply to topic    Total Commander Forum Index -> Автоматизация Total Commander printer-friendly view
View previous topic :: View next topic  
Author Message
Batya



Joined: 15 Dec 2004
Posts: 2218
Location: Москва, Россия

Post (Separately) Posted: Fri Jun 24, 2011 16:28    Post subject: Reply with quote

shveicar wrote:
Ну конечно, речь идет именно о замене фрагмента текста в теге, как я и пытался (видимо не совсем понятно) объяснить.

И даже сейчас ты не доходчиво объясняешь. То, что ты хочешь, я понял исключительно из описанной тобой процедуры проверки.
Ясно, что нужно заменить текст в файлах. Но что текст для замены нужно брать из соответствующей строки другого файла, это было неясно.
_________________
Нет, я не сплю. Я просто медленно моргаю.
Back to top
View user's profile Send private message
shveicar



Joined: 18 Apr 2011
Posts: 277
Location: Россия Москва

Post (Separately) Posted: Fri Jun 24, 2011 16:35    Post subject: Reply with quote

Извиняюсь, на будущее учту.
Back to top
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Fri Jun 24, 2011 16:45    Post subject: Reply with quote

Batya wrote:
Но что текст для замены нужно брать из соответствующей строки другого файла, это было неясно.
А мне сразу было ясно:
Quote:
Замена должна производиться из тексового файла в котором список ссылок для замены. ....
Естественно число html файлов и число ссылок в текстовом файле совпадают, то есть в каждом выделенном файле html производится замена одной ссылки на одну ссылку по порядку из текстового файла списка.
Back to top
View user's profile Send private message
Batya



Joined: 15 Dec 2004
Posts: 2218
Location: Москва, Россия

Post (Separately) Posted: Fri Jun 24, 2011 16:56    Post subject: Reply with quote

Flasher wrote:
А мне сразу было ясно

Ты счастливый человек - ничего не отвлекает от проблем TC посреди рабочего дня.
_________________
Нет, я не сплю. Я просто медленно моргаю.
Back to top
View user's profile Send private message
Avada



Joined: 01 Aug 2008
Posts: 10263
Location: Россия, Саратов

Post (Separately) Posted: Fri Jun 24, 2011 20:52    Post subject: Reply with quote

Последующий оффтоп отделён в тему Создание группы HTML-файлов с именами из файла-списка.
_________________
Даже самая богатая фантазия
Не представит себе наши безобразия.
Back to top
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Sat Jun 25, 2011 23:07    Post subject: Reply with quote

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
Тут какое-то условие нужно особое. В общем, надо ждать Батю, пусть поправит, где я промахнулся. Smile
Back to top
View user's profile Send private message
Batya



Joined: 15 Dec 2004
Posts: 2218
Location: Москва, Россия

Post (Separately) Posted: Mon Jun 27, 2011 18:11    Post subject: Reply with quote

shveicar wrote:
Пытаюсь проверить - жму кнопку скрипта ничего не происходит.

Изменил свой скрипт.
Изменилась и кнопка.
Проверь.
_________________
Нет, я не сплю. Я просто медленно моргаю.
Back to top
View user's profile Send private message
shveicar



Joined: 18 Apr 2011
Posts: 277
Location: Россия Москва

Post (Separately) Posted: Tue Jun 28, 2011 01:27    Post subject: Reply with quote

Спасибо 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
View user's profile Send private message
Batya



Joined: 15 Dec 2004
Posts: 2218
Location: Москва, Россия

Post (Separately) Posted: Tue Jun 28, 2011 09:26    Post subject: Reply with quote

shveicar wrote:
единственное путь к файлу filelist.txt пришлось указывать полностью

Естесственно, я же чисто схематично привёл кнопку и не знаю путь к твоему filelist.txt.
Справедливости ради надо отметить, что может работать и без указания полного пути, если кнопка нажимается, когда текущей папкой является та, где лежит filelist.txt. А также будет работать, если заполнен "Путь запуска" кнопки, и filelist.txt лежит в этой папке.
_________________
Нет, я не сплю. Я просто медленно моргаю.
Back to top
View user's profile Send private message
shveicar



Joined: 18 Apr 2011
Posts: 277
Location: Россия Москва

Post (Separately) Posted: Tue Jun 28, 2011 13:04    Post subject: Reply with quote

Quote:
А также будет работать, если заполнен "Путь запуска" кнопки, и filelist.txt лежит в этой папке
А вот этот вариант я не учел. Для меня - он пожалуй самый удобный! Laughing Еще раз - премного благодарен!
Back to top
View user's profile Send private message
shveicar



Joined: 18 Apr 2011
Posts: 277
Location: Россия Москва

Post (Separately) Posted: Thu Jul 21, 2011 20:29    Post subject: Reply with quote

Добрый вечер. Batya - а возможно в Замечательном скрипте Добавить окно для ввода заменяемого текста, просто часто, в разных тегах попадается одинаковые значения для замены из файла списка, и приходится каждый раз менять параметры в кнопке( бывают длинные выражения), вобщем, сегодня пол-дня провел, чтобы заменить 5 одинаковых строчек в разных тегах. Конечно без скрипта, учитывая объем файлов, потребовалась наверное, неделя, Но Если такое возможно, Буду очень признателен, Спасибо.
Back to top
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Thu Jul 21, 2011 20:41    Post subject: Reply with quote

Если не ошибаюсь, заменить
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
View user's profile Send private message
shveicar



Joined: 18 Apr 2011
Posts: 277
Location: Россия Москва

Post (Separately) Posted: Thu Jul 21, 2011 21:21    Post subject: Reply with quote

Спасибо, окно конечно появляется, но после ввода текста, - появляется еще одно окно для ввода текста замены, а речь идет о замене текста из строчек текстового файла, 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
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Thu Jul 21, 2011 21:39    Post subject: Reply with quote

shveicar wrote:
Спасибо, окно конечно появляется, но после ввода текста, - появляется еще одно окно для ввода текста замены, а речь идет о замене текста из строчек текстового файла
Так и в скрипте и в кнопке фигурируют строки как для поиска, так и для замены. В чём проблема?
shveicar wrote:
только, во втором случае приходится в ручную менять двойные кавычки в теге, на одинарные, а - это крайне не удобно.
А как удобно? Чтобы автоматически определялось, ставить кавычки или нет? Или по умолчанию для искомой строки без кавычек, а для той, на которую производится замена, с?
Back to top
View user's profile Send private message
shveicar



Joined: 18 Apr 2011
Posts: 277
Location: Россия Москва

Post (Separately) Posted: Thu Jul 21, 2011 22:33    Post subject: Reply with quote

Наверно я чего - то не понимаю, Попытаюсь разобраться подробнее(выделяем группу файлов html) первый выделенный файл в списке - 1.html Cтрока для поиска
Code:
('flvpla1/player.swf','mplayer','640','380','9','000000')
строка для замены
Code:
"('%%FromFileArr%%','mplayer','640','380','9','000000')"
параметр
Code:
%%FromFileArr%%
- подразумевает вставку строки №1 из файла - filelist.txt и так далее, число строк и число выделенных html файлов совпадает(строки в filelist.txt все разные). Вариант с кнопкой -работает, вариант с окном выдает ошибку.(кавычки я пока не рассматриваю). По идее вариант с окном должен выглядеть так - выделяем группу html файлов filelist.txt лежит в той-же папке. жмем кнопку - появляется окно со строкой поиска, вводим желаемый тег (в данном случае
Code:
flvpla1/player.swf
) нажимаем ок, и все совпадения во всех выделенных html файлах ( при условии одно совпадение в одном файле) меняются на значения из файла списка filelist.txt Если в каждом html файле например - два совпадения, тогда в параметрах кнопки стоит цифра2 (естественно что количество совпадений во всех html файлах одинаковое то есть 2), если три то 3. Ну вот, примерно такой вариант я имел ввиду.
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    Total Commander Forum Index -> Автоматизация Total Commander All times are GMT + 4 Hours
Goto page Previous  1, 2, 3, 4, 5  Next
Page 4 of 5

 
Jump to:  
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