![]() |
Внимание, важное сообщение: Дорогие Друзья!
В ноябре далекого 2001 года мы решили создать сайт и форум, которые смогут помочь как начинающим, так и продвинутым пользователям разобраться в операционных системах. В 2004-2006г наш проект был одним из самых крупных ИТ ресурсов в рунете, на пике нас посещало более 300 000 человек в день! Наша документация по службам Windows и автоматической установке помогла огромному количеству пользователей и сисадминов. Мы с уверенностью можем сказать, что внесли большой вклад в развитие ИТ сообщества рунета. Но... время меняются, приоритеты тоже. И, к сожалению, пришло время сказать До встречи! После долгих дискуссий было принято решение закрыть наш проект. 1 августа форум переводится в режим Только чтение, а в начале сентября мы переведем рубильник в положение Выключен Огромное спасибо за эти 24 года, это было незабываемое приключение. Сказать спасибо и поделиться своей историей можно в данной теме. С уважением, ваш призрачный админ, BigMac... |
|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » Любой язык - [решено] Заменить ссылки в одном тхт файле, взяв их из другого |
|
Любой язык - [решено] Заменить ссылки в одном тхт файле, взяв их из другого
|
Ветеран Сообщения: 558 |
Здравствуйте, подскажите, пожалуйста, как можно заменить ссылки в одном тхт файле, на ссылки из другого, ориентируясь по имени файла?
Пример файла 1.txt, в котором нужно заменить ссылки: <a href="http://google.com/file/8b3diflsghc0de/0001start.wmv" target="_blank">Download - 92.9 MB</a> <a href="http://google.com/file/b7dikd67gl343ff1/0002start.wmv" target="_blank">Download - 31.0 MB</a> <a href="http://google.com/file/addjkd743e09/0003start.wmv" target="_blank">Download - 163.5 MB</a> <a href="http://google.com/file/2def75kf88d24c/0004start.wmv" target="_blank">Download - 73.3 MB</a> <a href="http://google.com/file/82bfk548fk431c2c/0005start.wmv" target="_blank">Download - 82.4 MB</a> <a href="http://google.com/file/03d3fi458fk5139/0006start.wmv" target="_blank">Download - 39.9 MB</a> http://yandex.ru/file/dd5dfh55hj458c40/0001start.wmv http://yandex.ru/file/aahgj5656rhh02228e/0002start.wmv http://google.com/file/afgh5674dfadfd310/0003start.wmv http://yandex.ru/file/92fgh6574j1330899/0004start.wmv http://google.com/file/afgh454h918235/0005start.wmv http://yandex.ru/file/88efgh46hgf0e0ad6/0006start.wmv http://google.com/file/f55fh451582/0007start.flv http://yandex.ru/file/421afgh45h4c5e85/0008start.wmv http://yandex.ru/file/ea77bfg5453330ce/0009start.wmv http://google.com/file/2786544ghfa78dd5/0010start.wmv http://yandex.ru/file/1e47456h5dda2f/0011start.wmv http://yandex.ru/file/526154g33fdd09d/0012start.wmv http://yandex.ru/file/fee956rthr45h5b9575/0013start.wmv http://yandex.ru/file/ad5854h4h54c4a581/0014start.wmv http://yandex.ru/file/de6bht45hrth807de3/0015start.wmv Часть, которая должна замениться в файле 1.txt, выделена жирным (т.е. теги все должны остаться). Необходимо заменять именно по имени файла, сами ссылки разные, домены тоже могут быть разные. Каждая ссылка всегда начинается с новой строки в обоих тхт файлах. Количество ссылок в двух тхт файлах всегда разное... после выполнения операции в файле 1.txt должно остаться тоже количество ссылок, только они должны быть заменены ссылками из файла 1.txt. В примере, после выполнения операции, файл 1.txt должен стать таких: <a href="http://yandex.ru/file/dd5dfh55hj458c40/0001start.wmv" target="_blank">Download - 92.9 MB</a> <a href="http://yandex.ru/file/aahgj5656rhh02228e/0002start.wmv" target="_blank">Download - 31.0 MB</a> <a href="http://google.com/file/afgh5674dfadfd310/0003start.wmv" target="_blank">Download - 163.5 MB</a> <a href="http://yandex.ru/file/92fgh6574j1330899/0004start.wmv" target="_blank">Download - 73.3 MB</a> <a href="http://google.com/file/afgh454h918235/0005start.wmv" target="_blank">Download - 82.4 MB</a> <a href="http://yandex.ru/file/88efgh46hgf0e0ad6/0006start.wmv" target="_blank">Download - 39.9 MB</a> |
|
Отправлено: 07:58, 14-02-2016 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать На WSH:
Скрытый текст
Option Explicit Const ForWriting = 2 Dim strSourceFile Dim strPatternFile Dim strContent Dim strLine Dim objDictionary Dim strKey strSourceFile = "C:\Мои проекты\36\1.txt" strPatternFile = "C:\Мои проекты\36\2.txt" With WScript.CreateObject("Scripting.FileSystemObject") If .FileExists(strSourceFile) Then If .FileExists(strPatternFile) Then With .OpenTextFile(strPatternFile) strContent = .ReadAll() .Close End With Set objDictionary = WScript.CreateObject("Scripting.Dictionary") For Each strLine In Split(strContent, vbCrLf) strLine = Trim(strLine) If Len(strLine) > 0 Then objDictionary.Add .GetFileName(strLine), strLine End If Next With .OpenTextFile(strSourceFile) strContent = .ReadAll() .Close End With With WScript.CreateObject("VBScript.RegExp") .IgnoreCase = True .Global = True For Each strKey In objDictionary.Keys .Pattern = "(<a href="")(http://.*?/" & strKey & ")("".*?>.*?</a>)" If .Test(strContent) Then strContent = .Replace(strContent, "$1" & objDictionary.Item(strKey) & "$3") End If Next End With .CopyFile strSourceFile, .BuildPath(.GetParentFolderName(strSourceFile), .GetBaseName(strSourceFile) & ".bak"), True With .OpenTextFile(strSourceFile, ForWriting) .Write strContent .Close End With objDictionary.RemoveAll Set objDictionary = Nothing Else WScript.Echo "Can't find pattern file [" & strPatternFile & "]." WScript.Quit 2 End If Else WScript.Echo "Can't find source file [" & strSourceFile & "]." WScript.Quit 1 End If End With WScript.Quit 0 |
Отправлено: 08:30, 14-02-2016 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 558
|
Профиль | Отправить PM | Цитировать Спасибо, все работает
![]() |
Отправлено: 09:25, 14-02-2016 | #3 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
CMD/BAT - [решено] скопировать n последних строк одного тхт файла и вставить их в конец другого тхт файл | Alexander_88 | Скриптовые языки администрирования Windows | 2 | 23-11-2015 16:38 | |
Любой язык - [решено] заменить ссылки из одного тхт на ссылки в другом тхт | Alexander_88 | Скриптовые языки администрирования Windows | 4 | 11-10-2015 16:46 | |
CMD/BAT - поиск новой строки в тхт файле | Xeruvim4ik | Скриптовые языки администрирования Windows | 8 | 17-02-2014 00:51 | |
Любой язык - [решено] из одного тхт файла добавить содержимое во все тхт файлы папки | gangsterovich | Скриптовые языки администрирования Windows | 3 | 06-05-2011 04:29 | |
CMD/BAT - С помощью bat-ника найти и заменить текст в файле на текст из другого файла | Nun-Nun | Скриптовые языки администрирования Windows | 1 | 08-03-2011 15:25 |
|