|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
04.08.2010, 12:02 | #1 |
Пользователь
Регистрация: 04.08.2010
Сообщений: 28
|
Работа со строками в блокноте
Здравствуйте.
Есть словарь в формате txt. Термины пишутся с заглавных букв, пояснение к терминам соответственно строчными. Проблема в том что, пояснение термина пишется в несколько строк, а надо чтобы и термин и пояснение были в одну строку. Например термин, который пишется так: АВТОМОБИЛЬ (разъяснения) ДВИГАТЕЛИ (разъяснения) и т.д. Ещё интересно, что некоторые предложения в разъяснение тоже начинаются с заглавной буквы. Вот сам словарь http://webfile.ru/4647381 Возможно ли это сделать в автоматизированном режиме? |
05.08.2010, 14:36 | #2 |
Балуюсь кодами
Участник клуба
Регистрация: 09.01.2009
Сообщений: 1,837
|
Думаю, что возможно. Но делать это просто так, слишком нудно
Лучше день потерять — потом за пять минут долететь!©
|
08.08.2010, 13:29 | #3 |
Пользователь
Регистрация: 23.01.2010
Сообщений: 70
|
ну и зачем было выкладывать весь файл целиком? выложил бы пару примеров было бы проще. качай теперь. сейчас гляну что можно предложить.
|
08.08.2010, 14:02 | #4 |
Пользователь
Регистрация: 23.01.2010
Сообщений: 70
|
могу предложить следующий вариант:
1. открываем файл в ворде. 1.1. ставим галочку отображения не печатаемых символов (чтоб видеть что делаешь) 2. на главной ленте выбираем заменить. 2.1. нажимаем кнопку "больше" в поле "найти" выбираем специальный символ "знак абзаца" 2.2. в поле "заменить" вводим пробел. 2.3. нажимаем "заменить все" и ждем долго долго пока обработается весь файл. 3.1. в поле "найти" ставим три пробела и букву А (прописную) 3.2. в поле "заменить" ставим специальный символ "знак абзаца" и букву А 3.3. ставим галочку в поле "учитывать регистр" 3.4. нажимаем "заменить все" и ждем пока обработается файл. пункты 3.1.-3.4. проделываем для каждой буквы алфавита. аналогичным образом убираем лишние пробелы в поле найти ставим два пробела, в поле заменить один. и заменяем до тех пор пока результат замен не станет равным нулю. затем если нужно ставим отступы и сохраняем файл как простой текст. |
08.08.2010, 14:12 | #5 |
Заблокирован
Регистрация: 08.08.2010
Сообщений: 41
|
Lau
а какие есть предложения, как это сделать? Я вижу решение полуавтоматическое. Выделять термин и его описание и с помощью "Найти и заменить" менять знак абзаца и 2 пробела на пробел. Или пройтись по всему документу и удалить вручную 2 пробела перед терминами, а затем по всему документу произвести вышеописанную замену. javvva А если с большой буквы будет начинаться не термин, а просто слово? Последний раз редактировалось CyberMen; 08.08.2010 в 14:18. |
08.08.2010, 14:28 | #6 |
Балуюсь кодами
Участник клуба
Регистрация: 09.01.2009
Сообщений: 1,837
|
Я бы делал регулярными выражениями. Прочитал бы текстовый файл в переменную, а затем искал бы слова, стоящие в начале строк и состоящие из заглавных букв. Всё, что находится между такими словами, является статьёй. В статье заменяем разрывы строк на пробелы. Это формальный подход, но, скорее всего, потребуются ещё действия для унификации содержимого: отсечение частей файла, не несущих информации и т.п.
Лучше день потерять — потом за пять минут долететь!©
|
08.08.2010, 14:41 | #7 |
Заблокирован
Регистрация: 08.08.2010
Сообщений: 41
|
javvva
хотя я сейчас подумал, ничего страшного не случится, если какое-то слово с большой буквы будет стоять в начале строки. Таких ситуаций будет мало, они будут бросаться в глаза и это затем можно исправить вручную. В развитие идеи. Ставим галочку "Постановочные знаки" В поле "Найти" копируем и вставляем вот это: (^0013)( )([А-Я]) В поле "Заменить" \1\3 Затем по всему документу произвести замену знака абзаца и двух пробелов на один пробел. Последний раз редактировалось CyberMen; 08.08.2010 в 14:54. |
08.08.2010, 16:23 | #8 |
Пользователь
Регистрация: 23.01.2010
Сообщений: 70
|
|
09.08.2010, 06:36 | #9 |
Форумчанин
Регистрация: 09.07.2009
Сообщений: 111
|
1) Ищем аббревиатуры из списка сокращений и меняем их на курсив
2) Убиваем пробелы в начале строк: ^p^w на ^p 3) Ищем слово в начале абзаца, состоящее из больших букв: ^13<[А-ЯЁ]@> (с подстановочными знаками), не курсивное. Меняем на сочетание ###^& 4) Меняем все ^p на пробел 5) Меняем ### на ^p 6) Курсив меняем обратно на некурсив. 7) Всё это полдела, так как многие слова в словаре с переносами, которые дают в тексте тире. ЕСЛИ словарь экспортирован из вордовского файла, его надо экспортировать ещё раз, предварительно запретив расстановку переносов. Если, что более вероятно, он изначально в txt - выход один. Между пунктами 3) и 4) искать сочетание "-^p" и заменять на "ничего", вручную разрешая заменить или пропуская слово. Это позволит убрать тире-переносы в словах типа "не-посредственный" и оставить в "тонно-километрах" и т.п. Последний раз редактировалось garik64; 09.08.2010 в 06:58. Причина: Чуть-чуть подумал |
10.08.2010, 09:03 | #10 |
Форумчанин
Регистрация: 09.07.2009
Сообщений: 111
|
Ещё немного подумал. Между пунктами 2) и 3) надо сделать вот что:
Найти сочетание (^13)(<[А-ЯЁ]>^32) с подстановочными знаками и заменить найденное на " \2". То есть найти случай, когда предложение после знака абзаца начинается с "И", "А", "В", "О" и заменить абзац пробелом. Если этого не сделать, фраза отделится абзацем, как отдельная статья. Последний раз редактировалось garik64; 10.08.2010 в 09:14. Причина: блин, руки торопятся! |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Работа со строками | gani84 | Помощь студентам | 1 | 30.03.2010 17:39 |
работа со строками | DeDoK | Общие вопросы Delphi | 2 | 02.02.2010 23:27 |
работа со строками в с++ | Ferghost | Помощь студентам | 0 | 05.06.2009 01:40 |
Работа со строками. | tae1980 | Microsoft Office Excel | 2 | 18.04.2009 16:38 |