Форум программистов, компьютерный форум, киберфорум
MS Office Word
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 09.01.2019
Сообщений: 5
1

Выделение текста перед n-ым символом

09.01.2019, 16:11. Показов 1228. Ответов 5
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Доброго времени суток!
Имеется текст в ворде в формате:
|09.01.2019| |500.00 руб.|блаблабла|блаблабла|
|09.01.2019|200.00 руб.| |блаблабла|блаблабла|
|10.01.2019|4000.00 руб.| |опять ненужная чушь|бла|
Необходимо получить такой вид:
09.01.2019 500.00 руб.
09.01.2019 200.00 руб.
10.01.2019 4000.00 руб.
Каким способом это осуществить? Можно ли выделить часть текста перед символом, который, предположим, повторился в строке 3й раз?
Заранее спасибо!
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
09.01.2019, 16:11
Ответы с готовыми решениями:

Удалить из текста символ «!» и перед символом «:» вставить «-».
1. Удалить из текста символ «!» и перед символом «:» вставить «-».

Каждую цифру текста, которая находится перед первым символом "+", заменить на запятую
Всем доброго вечера, если Вам не сложно, помогите с задачей. Решить желательно, на С (Си), но если...

Каждую цифру текста, которая находится перед первым символом "+", заменить на запятую
Дано текст. Если он не содержит символа "+", то оставить его без изменения. В противном случае...

Удалить символы, стоящие перед символом *
Удалить символы, стоящие перед символом *. Рассмотреть случай наличия в последовательности...

5
Динохромный
1376 / 749 / 273
Регистрация: 22.12.2015
Сообщений: 2,344
09.01.2019, 18:05 2
Лучший ответ Сообщение было отмечено Ove4ka как решение

Решение

Цитата Сообщение от Ove4ka Посмотреть сообщение
Можно ли выделить часть текста перед символом, который, предположим, повторился в строке 3й раз?
Если символ повторяется с одинаковой частотой, и нужно третье вхождение - можно преобразовать текст в таблицу (символ разделитель в данном случае - "|"), скопировать второй столбец и при желании преобразовать обратно в текст. Однако в вашем, гхм, примере:
Цитата Сообщение от Ove4ka Посмотреть сообщение
 09.01.2019 500.00 руб. блаблаблаблаблабла 
 09.01.2019200.00 руб. блаблаблаблаблабла 
 10.01.20194000.00 руб. опять ненужная чушьбла 
|
я вижу произвольное вхождение этого самого символа.
1
0 / 0 / 0
Регистрация: 09.01.2019
Сообщений: 5
09.01.2019, 20:18  [ТС] 3
Спасибо, про преобразование в таблицу я как-то совсем забыл. Вариант неплохой, от него и буду отталкиваться
0
15146 / 6419 / 1731
Регистрация: 24.09.2011
Сообщений: 9,999
09.01.2019, 20:54 4
Как вариант, Найти и заменить, найти |[!|]@|[!|]@|^13 заменить на ^p , Подстановочные знаки.
Потом зачистить лишние символы "|".
0
5562 / 1368 / 150
Регистрация: 08.02.2009
Сообщений: 4,109
Записей в блоге: 30
11.01.2019, 03:14 5
А ещё так: все буквы заменить на пустоту; чёрточку — на пробел; двойные пробелы — на пробел, а в заключение — абзацы на обозначение рубля и абзац.

Кстати: во вручную набитых данных обычно куча мусора (что уже отмечено выше), а посему рекомендую прогнать для начала следующий уже испытанный макрос причёсывания.
Цитата Сообщение от Sasha_Smirnov Посмотреть сообщение
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
Sub CandidateElector()
Selection.HomeKey wdStory 'курсор в начало
With Selection.Find
 'сначала ряд пробелов стянем в 1 и уберём пробел в начале всех абзацев
 .MatchWildcards = True
 .Execute " {2;}", Replacewith:=" ", Replace:=wdReplaceAll
 .Execute "^11", Replacewith:="^13", Replace:=wdReplaceAll 'все ^l на ^p
 .Execute "(^13) ", Replacewith:="\1", Replace:=wdReplaceAll 'убрали начальный пробел
 .MatchWildcards = False 'сняли в окне поиска-замены галку «Подстановочные знаки»
End With
End Sub
Попробуйте все эти замены выполнить автоматически:

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Sub олечка()
Selection.HomeKey wdStory 'курсор в начало
With Selection.Find
 .Execute "^$", Replacewith:="", Replace:=wdReplaceAll ' все буквы удалили
 .Execute "|", Replacewith:=" ", Replace:=wdReplaceAll ' все | забили пробелом
 .Execute "  ", Replacewith:=" ", Replace:=wdReplaceAll ' два пробела стянули в один
 .Execute "  ", Replacewith:=" ", Replace:=wdReplaceAll ' и ещё раз
 .Execute "  ", Replacewith:=" ", Replace:=wdReplaceAll ' и ещё раз
 .Execute "  ", Replacewith:=" ", Replace:=wdReplaceAll ' и ещё раз
 .Execute vbCr & " ", Replacewith:="^p", Replace:=wdReplaceAll ' удалили пробел в начале абзаца (кроме 1-го)
 .Execute " " & vbCr, Replacewith:="^p", Replace:=wdReplaceAll ' удалили пробел в конце абзаца
 .Execute "." & vbCr, Replacewith:="^p", Replace:=wdReplaceAll ' удалили точку в конце абзаца
 .Execute "^p", Replacewith:="руб.^p", Replace:=wdReplaceAll   ' добавили "руб." в каждый абзац
End With
End Sub
1
5562 / 1368 / 150
Регистрация: 08.02.2009
Сообщений: 4,109
Записей в блоге: 30
12.01.2019, 03:07 6
Впрочем, способ, который изобрёл Казанский, более подходящ — ибо те самые
Цитата Сообщение от Ove4ka Посмотреть сообщение
блаблабла
не обязаны состоять исключительно из букв!


Цитата Сообщение от Sasha_Smirnov Посмотреть сообщение
спасибо-то хорошо, но желательны и комментарии
А то вот 28 человек за сутки пробегало, и все молча.
0
12.01.2019, 03:07
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.01.2019, 03:07
Помогаю со студенческими работами здесь

Проверить, есть ли перед символом '!' символ 'ю'
нужно узнать есть ли перед символом '!' символ 'ю' если первый символ в строке не! и символ! точно...

Удалить символ стоящий перед символом '#'
в) В тексте имеется символ '#'. Появление этого символа означает отмену предыдущего символа текста....

Определить, каким по порядку символом с начала текста является последняя точка текста
1. В программе предусмотреть ввод текста исходной строки с клавиатуры или из файла, его обработку и...

подсчитать, сколько символов стоят перед символом ?,
нужна задачка по теме символьные данные а именно, подсчитать, сколько символов стоят перед символом...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru