|
Компьютерный форум OSzone.net » Сфера Microsoft » Программное обеспечение Windows » Офис и Текст - Нужна особая программа, для редактирования текста любого вида |
|
|
Офис и Текст - Нужна особая программа, для редактирования текста любого вида
|
Новый участник Сообщения: 9 |
Приветствуются вообще любые решения, главное - чтобы работали, и в принципе были удобными
И желательно, чтобы софт работал по каким-то пресетам, или даже из командной строки, путём передачи аргументов. Короче, есть такая задача: Есть файл, в котором информация записана в подобном виде: param="test1" preset="default" shell="def" param="test2" preset="admin" shell="high" param="test3" preset="user" shell="med" (и так далее...) Нужно сделать несколько действий, например, привести текст в такой вид: shell="def" param="test1" shell="high" param="test2" shell="med" param="test3" (ключ preset с его значением - вырезан ключ shell - стал первым ключ param - стал последним) Так вот, задача - сделать это максимально быстро, а желательно - автоматизировать Ещё один пример манипуляций, которые нужно провести над тем же текстом: def default test1 high admin test2 med user test3 (просто получаем все значения между " и ", вырезаем всё остальное, а потом меняем местами первое и последнее) |
|
Отправлено: 16:13, 11-05-2018 |
Динохромный Сообщения: 704
|
Профиль | Отправить PM | Цитировать Цитата akvarel_ps:
Цитата akvarel_ps:
Полагаю, чтобы предложить более специализированное решение, вас попросят приложить образец реального документа, приведенных кусочков будет недостаточно. |
||
Отправлено: 16:22, 11-05-2018 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Новый участник Сообщения: 9
|
Профиль | Отправить PM | Цитировать Цитата a_axe:
Не могу найти какой-то удобный инструмент, который будет не удалять текст (заменять на "пустую строку"), а именно копировать заданный, например, регулярным выражением текст, и вставлять его в заданное место в документе. Пробовал с "вхождениями" в np++, и даже нашёл способ копировать в буфер все строки, которые np++ нашёл по моей маске. Но этот способ не очень удобно применять на крупных файлах... Поэтому, ищу подобное решение. Но за excel спасибо, видимо стоит в нём поковыряться ещё, может найду ответ там) |
|
Отправлено: 16:35, 11-05-2018 | #3 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата akvarel_ps:
Цитата a_axe:
Цитата akvarel_ps:
Цитата akvarel_ps:
Цитата akvarel_ps:
Цитата akvarel_ps:
|
||||||
Отправлено: 16:40, 11-05-2018 | #4 |
Новый участник Сообщения: 9
|
Профиль | Отправить PM | Цитировать Цитата Iska:
Уже был очень близок, нашёл реально удобный способ, но его единственным минусом оказалась скорость работы. Крупные файлы обрабатывает по 3 минуты, а действие крайне простое, казалось бы. |
||
Отправлено: 16:47, 11-05-2018 | #5 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата akvarel_ps:
![]() Цитата akvarel_ps:
|
||
Отправлено: 16:53, 11-05-2018 | #6 |
Новый участник Сообщения: 9
|
Профиль | Отправить PM | Цитировать Цитата Iska:
Способ - через np++ плагин, скрипт на питоне. Собсна, из-за питона и медленно) |
|
Отправлено: 17:03, 11-05-2018 | #7 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата akvarel_ps:
Цитата akvarel_ps:
Вот Вам пример кода на WSH, набросанного на скорую руку на коленке, без каких-либо проверок, который на первом Вашем примере делает указанную замену: Скрытый текст
Option Explicit Dim strSourceFile Dim objFSO Dim objRegExp Dim strContent strSourceFile = "C:\Мои проекты\0157\Source.txt" Set objFSO = WScript.CreateObject("Scripting.FileSystemObject") Set objRegExp = WScript.CreateObject("VBScript.RegExp") With objRegExp .Pattern = "^(param="".+"")\s+preset="".+""\s+(shell="".+"")$" .Global = True .MultiLine = True .IgnoreCase = True End With With objFSO.OpenTextFile(strSourceFile) strContent = .ReadAll() .Close End With If objRegExp.Test(strContent) Then strContent = objRegExp.Replace(strContent, "$2 $1") With objFSO.CreateTextFile(objFSO.BuildPath(objFSO.GetParentFolderName(strSourceFile), "Result.txt"), True) .Write strContent .Close End With Else WScript.Echo "Not found" End If WScript.Quit 0 Если задать ему файл из полутора тысяч строк, то время выполнения даже не заметишь. Если скормить ему файл из миллиона строк: (около сорока мегабайт, тупо продублированы три Ваших строки из образца) — время выполнения всё равно займёт меньше секунды (конечно, само содержимое файла уже было в дисковом кэше, понятно): Так что, никак не в Python'е тут дело. Над чем там можно пыхтеть ажник целых три минуты на полутора-то тысячах строк — даже не представляю. |
||
Отправлено: 17:32, 11-05-2018 | #8 |
Новый участник Сообщения: 9
|
Профиль | Отправить PM | Цитировать Цитата Iska:
Цитата Iska:
И на этом спасибо, Цитата akvarel_ps:
|
|||
Отправлено: 17:44, 11-05-2018 | #9 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата akvarel_ps:
Цитата a_axe:
![]() Цитата akvarel_ps:
|
|||
Отправлено: 17:57, 11-05-2018 | #10 |
|
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Разное - Нужна специфическая программа по замену текста | daf010 | Программирование и базы данных | 2 | 08-03-2014 01:15 | |
Офис и Текст - Нужна программа, выдергивания текста... | BMW09121985 | Программное обеспечение Windows | 38 | 20-02-2014 01:03 | |
[решено] Нужна программа для редактирования звука | asus a9rp | Видео и аудио: обработка и кодирование | 12 | 20-02-2010 15:21 | |
Программа для редактирования сайта | emilj | Вебмастеру | 27 | 04-09-2009 23:26 | |
Система - Программа для ограниченного редактирования Active Directory | Dmitriy_K | Программное обеспечение Windows | 1 | 11-12-2008 11:49 |
|