Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Операционные системы > Софт
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.07.2012, 21:57   #1
Saire
 
Регистрация: 02.07.2012
Сообщений: 4
По умолчанию Редактирование определённого текста в нескольких файлах

Не специалист в программировании, потому не знал, куда поместить. Нужна программа или скрипт (для windows xp) для проведения следующей операции:
Имеется тхт файл, в котором каждый раз с новой строчки идёт определённый текст (новая строка - новый текст). Это заголовки для статей. Допустим имя этого файла "Заголовки". Так же имеется папка с тхт файлами, количество которых равно количеству заголовков в первом файле. Назовём эти файлы "статья 1", "статья 2", "статья 3" и т.д. Необходимо переместить заголовки из файла "Заголовки" в файлы со статьями в самое начало, чтобы первая строка в статье шло название, ниже текст. Или можно так: во всех статьях в начале будет слово <title>, его нужно заменить на заголовки из соответствующего файла. То есть должно быть так:
1) Из файла "Заголовки" текст из первой строки в начало текста файла "статья 1" (или вместо <title>)
2) Из файла "Заголовки" текст со второй строки в начало текста файла "статья 2" (или вместо <title>)
И так далее до конца. Очень важно, чтобы заголовки из файла брались и вставлялись в файлы со статьями строго по порядку, то есть никаких "Из файла "Заголовки" текст из третьей строки в начало текста файла "Статья 6"".
Или же можно заголовки поместить не в один файл, а в разные, обозначив их "заголовок 1", "заголовок 2" и т.д. Тогда получится так:
1) Из файла "Заголовок 1" текст в начало текста файла "статья 1"
2) Из файла "Заголовок 2" текст в начало текста файла "статья 2"
Буду крайне признателен за помощь, спасибо.
P.S. К теме прикладываю архив с простейшим примером того, что необходимо. Папка "Статьи" - это исходные тексты, куда нужно вставить заголовки, папка "Отредактированные статьи" - то, что должно получиться
Вложения
Тип файла: rar sample.rar (2.6 Кб, 10 просмотров)

Последний раз редактировалось Saire; 02.07.2012 в 22:01.
Saire вне форума Ответить с цитированием
Старый 03.07.2012, 07:48   #2
s-andriano
Старожил
 
Аватар для s-andriano
 
Регистрация: 08.04.2012
Сообщений: 3,229
По умолчанию

По каким признакам алгоритм должен определять, в какой именно файл вставлять текст, скажем, из третьей строки?
В одном месте у Вас написано "Статья 6", а в другом "статья 2". Я не про номер, а про первую букву в названии.
Допустимы ли имена типа "статья 001"?
Как определить папки, из которых следует брать файлы?
Как поступать, если присутствуют и "статья 1" и "статья 001"?
Как поступать, если в указанном месте есть файлы не подходящие под шаблон?
Как поступать, если среди файлов отсутствует, например, "Статья 6", а строк в файле с заголовками больше 6?
s-andriano вне форума Ответить с цитированием
Старый 03.07.2012, 09:07   #3
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

программка
ArticlesReplacer-executable.rar
и исходники (Delphi) ArticlesReplacer-src.rar приложены.

Контроль за нештатными ситуациями - минимальнейший (шаг влево, шаг вправо - расстрел).

пользуйтесь на здоровье!
Serge_Bliznykov вне форума Ответить с цитированием
Старый 03.07.2012, 11:31   #4
Saire
 
Регистрация: 02.07.2012
Сообщений: 4
По умолчанию

Цитата:
По каким признакам алгоритм должен определять, в какой именно файл вставлять текст, скажем, из третьей строки?
В одном месте у Вас написано "Статья 6", а в другом "статья 2". Я не про номер, а про первую букву в названии.
Допустимы ли имена типа "статья 001"?
Да, можно файлы со статьями просто обозвать "001", "002", "003" и т.д.
Определять должен по номеру статьи в названии.
Цитата:
Как определить папки, из которых следует брать файлы?
Здесь как вам удобнее. Можно, чтобы файлы с заголовками и и со статьями были в одной папке, можно в разных. Вложенности не будет.
Цитата:
Как поступать, если присутствуют и "статья 1" и "статья 001"?
Исключено, файлы со статьями будут чётко названы по одному шаблону.
Цитата:
Как поступать, если в указанном месте есть файлы не подходящие под шаблон?
В указанном месте будут чётко подходящие под шаблон файлы
Цитата:
Как поступать, если среди файлов отсутствует, например, "Статья 6", а строк в файле с заголовками больше 6?
Тоже исключено, количество файлов со статьями и заголовков будет равно.
Большое спасибо за оперативный ответ.
Serge_Bliznykov, благодаря, обязательно попробую.
Update: Serge_Bliznykov, попробовал ваш вариант, то что надо, большое спасибо. Такой вопрос: можно ли усложнить процесс? Делать необходимо тоже самое (брать из списка и заменять необходимое слово в статьях), но кроме заголовка добавить ещё в необходимое место, к примеру, ссылку? Допустим есть статьи, в середине текста имеются слова <url 1> и <url 2>. Имеется два списка txt, один называется Url 1, другой Url 2, в них представлены тексты ссылок, с каждой новой строки новая ссылка. Необходимо как и с заголовками:
1) Из файла Url 1 первая ссылка заменяет в файле "Статья 1" слово <url 1>; Из файла Url 2 первая ссылка заменяет в файле "Статья 1" слово <url 2>
2) Из файла Url 1 вторая ссылка заменяет в файле "Статья 2" слово <url 1>; Из файла Url 2 вторая ссылка заменяет в файле "Статья 2" слово <url 2>

Последний раз редактировалось Saire; 03.07.2012 в 11:46.
Saire вне форума Ответить с цитированием
Старый 03.07.2012, 11:41   #5
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Цитата:
Исключено, файлы со статьями будут чётко названы по одному шаблону.
Цитата:
В указанном месте будут чётко подходящие под шаблон файлы
Цитата:
Тоже исключено, количество файлов со статьями и заголовков будет равно.
Обычно когда 'так не бывает' обязательно это случается в самый не подходящий момент и достаточно скоро
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 03.07.2012, 12:42   #6
DiemonStar
Старожил
 
Регистрация: 08.02.2012
Сообщений: 2,173
По умолчанию

Цитата:
Обычно когда 'так не бывает' обязательно это случается в самый не подходящий момент и достаточно скоро
Я бы добавил, что это бывает, когда:
1) нет того, кто смог бы поправить
2) когда данных столько, что пользователь просто физически не сможет всё перелопатить быстро
3) результат нужен был ещё вчера
4) юзеры настолько отвыкли делать это вручную, что неделю будут ныть каждые 10 минут, хотя за это время могли бы три раза всё переправить.
Правильно поставленная задача - три четверти решения.
DiemonStar вне форума Ответить с цитированием
Старый 03.07.2012, 14:41   #7
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от Saire
Такой вопрос: можно ли усложнить процесс? Делать необходимо тоже самое (брать из списка и заменять необходимое слово в статьях), но кроме заголовка добавить ещё в необходимое место, к примеру, ссылку? Допустим есть статьи, в середине текста имеются слова <url 1> и <url 2>. Имеется два списка txt, один называется Url 1, другой Url 2,
да, безусловно, можно, усложняйте.
в процедуре btStartClick добавьте две переменные типа TStringList, перед циклом прочитайте в них свои URL1.txt и URL2.txt и в основной цикл добавьте перебор коллекции TSArt и замену нужных значений. Либо через TSArt.Text можно заменить... Это как Вам понятнее и удобнее.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 03.07.2012, 16:15   #8
Saire
 
Регистрация: 02.07.2012
Сообщений: 4
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
да, безусловно, можно, усложняйте.
в процедуре btStartClick добавьте две переменные типа TStringList, перед циклом прочитайте в них свои URL1.txt и URL2.txt и в основной цикл добавьте перебор коллекции TSArt и замену нужных значений. Либо через TSArt.Text можно заменить... Это как Вам понятнее и удобнее.
К великому сожалению ничего из этого непонятно и неудобно. Не смею Вас просить, но буду премного благодарен, если поможете с добавлением выше упомянутых элементов. Будет просто супер, если получится такая же программка, как вы добавили выше, но с строчками для указания ссылок. Заранее спасибо!
Saire вне форума Ответить с цитированием
Старый 03.07.2012, 19:38   #9
s-andriano
Старожил
 
Аватар для s-andriano
 
Регистрация: 08.04.2012
Сообщений: 3,229
По умолчанию

Я бы все-таки посоветовал не надеяться на то, что "не может быть потому, что не может быть никогда", а уделил внимание проверкам и защите данных.
Ну, хотя бы не делать правку "на места", а брать файлы из одной папки и складывать результат в другую, сохраняя исходные варианты.
s-andriano вне форума Ответить с цитированием
Старый 03.07.2012, 21:30   #10
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от s-andriano
Ну, хотя бы не делать правку "на места", а брать файлы из одной папки и складывать результат в другую, сохраняя исходные варианты.
s-andriano, ну, это несерьёзно! Вы не посмотрели ни тот архив, который выложил автор темы, ни ту программу, которую выложил я.
А если бы посмотрели, то увидели, что у TC изначально исходные файлы лежат в одной папке, а результирующие (готовые) складываются в другую папку..


Цитата:
Сообщение от Saire
Не смею Вас просить, но буду премного благодарен, если поможете с добавлением выше упомянутых элементов. Будет просто супер, если получится такая же программка, как вы добавили выше, но с строчками для указания ссылок. Заранее спасибо!
пожалуйста. тестируйте.
ArticlesReplacer_v2-exe.rar
ArticlesReplacer_v2-src.rar


p.s.
Поймай человеку рыбу и ты сделаешь его сытым на один день,
научи его ловить рыбу самостоятельно и ты сделаешь его сытым на всю жизнь

я же исходники выкладываю не просто так.
Сейчас я в настроении, сделал Вам то, что Вы хотите, а завтра я буду занят/или не в настроении -
потребую с Вас за работу денюжку или вообще откажусь/не смогу что-то править!
Поэтому очень рекомендую Вам взять любую версию Delphi (портабле вполне подойдёт), и чуть-чуть посмотреть, что же там такого страшного написано АЖ в 75 строчках кода (я про главную процедуру, которая и делает все чтения/замены/сохранения...

Последний раз редактировалось Serge_Bliznykov; 03.07.2012 в 22:18.
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
поиск текста в файлах папки и запись результатов Composter Microsoft Office Word 12 02.04.2012 08:21
Поиск текста в файлах Arassir Общие вопросы по программированию, компьютерный форум 5 08.04.2011 09:22
Добавление/редактирование из нескольких таблиц, если для отображения используется Query lyle_200490 БД в Delphi 1 28.11.2010 15:02
Поиск определённого текста в текстовом файле vitawt Общие вопросы Delphi 4 20.01.2008 22:12