Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программирование и базы данных (http://forum.oszone.net/forumdisplay.php?f=21)
-   -   Перенос текста в html файле (http://forum.oszone.net/showthread.php?t=230080)

aggressor_ 11-03-2012 20:37 1877066

Перенос текста в html файле
 
Здравствуйте.
Возникла необходимость в переносе информации из одного файла в другой. Есть две папки, допустим WORK (наша рабочая папка) и папка EXAMPLE (исходники). В двух этих папках размещены файлы html, в том числе и в подпапках. Переносимая информация всегда заключена в тегах <title>...</title>, причём содержит в себе множество символов и является многострочным.
Файл, в который переносим информацию также содержит заполненный тайтл (<title>..</title>). При переносе, его необходимо перезаписать.

Как я себе представляю реализацию данного процесса:
1) Я указываю путь к файлу исходнику, после указываю путь к файлу, в который переносим.
2) Ниже идёт условие, по которому осуществляется поиск и замена информации. И так касательно каждого файла.
3) В случае, если файл не был найден, процесс обработки останавливается и msgbox указывает на недостающий файл. В случае успешной замены, также появляется какой-нибудь одобряющий msgbox :good:

Хотелось бы обратить внимание на то, что файлы html в кодировке UTF8 и включают в себя как кириллические символы, так и латиницу.
Возможно слишком запутанно объяснил, но постарался выразить свои мысли как можно конкретнее, с дилетантской точки зрения, в этом вопросе.

Beyound 11-03-2012 21:01 1877083

эт конечно все здорово. но вопрос то где?

aggressor_ 11-03-2012 21:57 1877135

Цитата:

Цитата Beyound
эт конечно все здорово. но вопрос то где? »

Цитата:

Цитата aggressor_
Возникла необходимость в переносе информации из одного файла в другой. »

Как перенести информацию из одного файла в другой с помощью скрипта?

Delirium 12-03-2012 01:15 1877302

aggressor_, учитывая, что теги html являются обрамляющими тегами любой hmtl, какой смысл переноса информации? Ты же просто копируешь ВЕСЬ файл. Или же ищется какая то информация внутри файла?

aggressor_ 12-03-2012 01:28 1877313

Меня интересует конкретно информация, находящаяся между тегами <title>...</title>. Её нужно взять из источника и переписать с заменой в рабочий файл в тег <title>...</title>.

ferget 12-03-2012 02:30 1877331

Цитата:

Цитата aggressor_
Меня интересует конкретно информация, находящаяся между тегами <title>...</title> »

чтобы эту информацию получить можно использовать регулярные выражения

Код:

re.Pattern = "<title>(([^<""]|[^<]*<[^/][^<])*(""[^""]*""([^<""]|[^<]*<[^/][^<])*)*)?</title>"

aggressor_ 12-03-2012 02:33 1877332

А как это всё применить к ситуации, описанной в первом посте (т.е. обращение к конкретному файлу, перенос и т.д.)? Просто я в этом не разбираюсь...

Delirium 12-03-2012 03:20 1877353

aggressor_, я повторюсь. HTML файл, его содержимое состоит из такого набора:
Код:

<HTML> текст </HTML>
Соответственно, ты выдираешь ВЕСЬ текст абсолютно. Зачем что то копировать в какой то другой файл, когда можно просто взять исходный и положить в нужную папку с новым именем, перезаписав старый файл с таким же именем?

aggressor_ 12-03-2012 03:55 1877363

Возможно я чего-то не понимаю...
Попробую немного иначе обрисовать ситуацию. Есть мои файлы html, со своим наполнением. Есть сторонние файлы html со своим наполнением. Мне нужно из сторонних файлов перенести только title в свой html файл не касаясь содержания, а так как файлов много и вручную очень трудоёмко, решил обратиться в сторону скрипта или любого другого метода реализации.
Может быть я неверно сформулировал свою мысль в первом посте, но я имел ввиду не то, что у меня есть написанный скрипт и он как-то не так работает..я обратился за помощью, чтобы мне подсказали как это реализовать.

Цитата:

Цитата Delirium
aggressor_, я повторюсь. HTML файл, его содержимое состоит из такого набора:
Код:
<HTML> текст </HTML>
Соответственно, ты выдираешь ВЕСЬ текст абсолютно. Зачем что то копировать в какой то другой файл, когда можно просто взять исходный и положить в нужную папку с новым именем, перезаписав старый файл с таким же именем? »

Как минимум состоит из
<html>
<head>
<title>!!!</title>
</head>
<body>
...
</body>
</html>

Delirium 12-03-2012 04:27 1877367

Упс, виноват, читать надо было внимательней. Я почему то подумал про тег html, а не title :) Виноват, исправлюсь.

aggressor_ 12-03-2012 04:35 1877368

С каждым бывает :)

Iska 12-03-2012 05:04 1877377

Цитата:

Цитата aggressor_
1) Я указываю путь к файлу исходнику, после указываю путь к файлу, в который переносим. »

Имена исходного и конечного файла как-то связаны? Или проще составить текстовый файл со списком путей вида:
Код:

"Путь к исходному файлу1" "Путь к конечному файлу1"
"Путь к исходному файлу2" "Путь к конечному файлу2"

и воспользоваться им?

aggressor_ 12-03-2012 05:32 1877395

Да, пути будут фиксированы. Так как нужен перенос из конкретного файла в другой конкретный файл. Везде содержание title разное.

Iska 12-03-2012 07:22 1877415

aggressor_, я не об этом спрашивал.

aggressor_ 12-03-2012 07:36 1877423

Цитата:

Цитата Iska
Имена исходного и конечного файла как-то связаны? »

Вы про этот вопрос? Совершенно не понял вопрос. В каком смысле связаны?
Цитата:

Цитата Iska
Или проще составить текстовый файл со списком путей вида: »

Цитата:

Цитата aggressor_
нужен перенос из конкретного файла в другой конкретный файл»

как они будут вызываться для меня не имеет значения, главное, чтобы работало :)

Iska 12-03-2012 08:18 1877446

Цитата:

Цитата aggressor_
Вы про этот вопрос? Совершенно не понял вопрос. В каком смысле связаны? »

Можно ли по имени исходного файла составить однозначное представление об имени конечного файла? Например, исходный файл «c:\WORK\Sample\File12.html» и конечный файл «c:\EXAMPLE\Sample\File12.html» (или «c:\EXAMPLE\Sample\ThisMyFile12.html»)?! Или же их имена не имеют никакой связи?

Меня интересует — как именно Вы будете указывать эти имена, каждого исходного и каждого конечного файла для каждой пары? Неужели все — вручную?!

aggressor_ 12-03-2012 08:24 1877452

Файлы не связаны по имени. Дело в том, что всего 25 файлов исходников и 25 для работы. Имена у исходников и файлов для работы будут постоянные, но наполнение каждый раз разное. Так что прописать 50 путей единожды для меня не составит труда.

aggressor_ 13-03-2012 09:32 1878141

Ребята, неужели никто не может помочь?

aggressor_ 17-03-2012 04:07 1881051

Так ответа и не дождался...
Один хороший человек реализовал на php.

Delirium 19-03-2012 02:12 1882139

aggressor_, задача стояла реализовать на VBS/WSH. Если бы сразу было указана возможность реализации НЕ скриптовыми языками, ответ получил бы через пару постов :)

pva 04-04-2012 11:04 1893146

чем не понравилась мысль воспользоваться регулярными выражениями? (я видел кто-то предлагал её, правда ИМХО перемудрено с регулярным выражением было)
Код:

for (...) { // цикл по списку файлов
  var source = ... .// загруженный исходник в виде строки
  var dest = ... // загруженный результат в виде строки
  var re_title = /<title>[^<]*</title>/i;

  var title = re_title.exec(source);
  if (title) dest.replace(re_title, title[0]);

  ... // сохранить результат
}



Время: 09:17.

Время: 09:17.
© OSzone.net 2001-