Нужна особая программа, для редактирования текста любого вида
Приветствуются вообще любые решения, главное - чтобы работали, и в принципе были удобными
И желательно, чтобы софт работал по каким-то пресетам, или даже из командной строки, путём передачи аргументов. Короче, есть такая задача: Есть файл, в котором информация записана в подобном виде: 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 (просто получаем все значения между " и ", вырезаем всё остальное, а потом меняем местами первое и последнее) |
Цитата:
Цитата:
Полагаю, чтобы предложить более специализированное решение, вас попросят приложить образец реального документа, приведенных кусочков будет недостаточно. |
Цитата:
Не могу найти какой-то удобный инструмент, который будет не удалять текст (заменять на "пустую строку"), а именно копировать заданный, например, регулярным выражением текст, и вставлять его в заданное место в документе. Пробовал с "вхождениями" в np++, и даже нашёл способ копировать в буфер все строки, которые np++ нашёл по моей маске. Но этот способ не очень удобно применять на крупных файлах... Поэтому, ищу подобное решение. Но за excel спасибо, видимо стоит в нём поковыряться ещё, может найду ответ там) |
Цитата:
Цитата:
Цитата:
Цитата:
Цитата:
Цитата:
|
Цитата:
Уже был очень близок, нашёл реально удобный способ, но его единственным минусом оказалась скорость работы. Крупные файлы обрабатывает по 3 минуты, а действие крайне простое, казалось бы. |
Цитата:
Цитата:
|
Цитата:
Способ - через np++ плагин, скрипт на питоне. Собсна, из-за питона и медленно) |
Цитата:
Цитата:
Вот Вам пример кода на WSH, набросанного на скорую руку на коленке, без каких-либо проверок, который на первом Вашем примере делает указанную замену: Скрытый текст
Код:
Option Explicit Если задать ему файл из полутора тысяч строк, то время выполнения даже не заметишь. Если скормить ему файл из миллиона строк: Скрытый текст
Код:
C:\Мои проекты\0157>find.exe /v "" /c Source.txt (около сорока мегабайт, тупо продублированы три Ваших строки из образца) — время выполнения всё равно займёт меньше секунды (конечно, само содержимое файла уже было в дисковом кэше, понятно): Скрытый текст
Код:
C:\Мои проекты\0157>0002.vbs Так что, никак не в Python'е тут дело. Над чем там можно пыхтеть ажник целых три минуты на полутора-то тысячах строк — даже не представляю. |
Цитата:
Цитата:
И на этом спасибо, Цитата:
|
Цитата:
Цитата:
Цитата:
|
Цитата:
Просто, даже так посмотреть, столько довольно простых в обращении программ сделано для монтажа видео/фото, а работа с текстом (основой) - не так проста, когда требуется сделать что-то чуть сложнее, чем просто написать пару инструкций. Именно поэтому и обратился, потому что это не самая приоритетная задача для меня, но какое-то простое решение хочется под рукой иметь, когда опять будет нужно что-то подобное сделать. |
Цитата:
|
Цитата:
Сейчас гораздо проще работать с графикой, чем с текстовой информацией. Банальные действия выше указал, но чтобы даже их сделать - нужно прибегать к скриптам?) Вариант с excel интересен, да и вообще - редактор текста по колонкам, по моему, удобное решение для такого. Либо в самом тексте создать что-то вроде переменной, с которой потом работать уже. |
akvarel_ps, не так. Где место для приложения каких-либо минимальных умственных усилий в графическом редакторе или программе нелинейного монтажа, вот буквально — где? Я не вижу. В случае же поиска и замены в текстовом файле Вам волей-неволей придётся приложить определённые умственные усилия для анализа содержимого. Можно, конечно, не прилагать — и тогда заменять методом «глазами нашёл, мышкой ткнул, выделил, на клавиатуре текст набрал (или вырезал, переместил, вставил)» — всё строго так, как это делается в упомянутых графических редакторах и программах нелинейного монтажа.
|
Цитата:
Всё начинается с текста. Не буквально. Обработка какого-то изображения в фотошопе - это ведь сложная задача, сложная, для того, кто фотошоп делал, но в итоге - простая для пользователя. Вернее, там есть свои нюансы, но сама суть, что машина облегчает задачу. Для обработки текстур в современном игровом движке - нужно знать чуть больше, но в итоге, всё равно решает тулза, а не знания того, кто с ней работает. Так вот, к чему я и пишу это. Достаточно много сделано, чтобы банально наложить картинку на видео, а ведь операция куда сложнее, чем переместить один символ в тексте в другое место, сохранив остальное содержимое. Цитата:
|
akvarel_ps, да причём тут сложность разработки самого приложения? Это Вы совсем не в ту степь зашли.
|
Цитата:
Для вышеуказанных задач с текстом, я не смог найти подобного. При том, что работа с текстом - более базовая ступень. Цитата:
|
akvarel_ps, Вы пытаетесь проводить аналогии между несопоставимыми концепциями.
|
15 лет много работаю с текстами :) Пробовал десятки разных редакторов и процессоров (не буду перечислять). Использовал для работы с текстом и электронные таблицы тоже по вышеуказанному методу столбцов.
Имхо, ничего удобнее Python для описанных в теме задач не придумано. Осуществлять перестановки и замены можно с помощью регулярных выражений, но:
Текстовые редакторы хорошо выполняют только однократную замену (простую или с регулярными подвыражениями). Программа которая выполняет множественные замены, в том числе регулярные, у меня была, но она перестала поддерживаться много лет назад. Это Replace Text, ранее называвшаяся BK ReplaceEm. Не обязательно работает уже в Windows 7. Периодически пытался найти ей замену, но так и не нашел. Альтернативы ей так или иначе завязаны на grep , который я не использовал, см. ссылку на сайте поиска альтернатив: https://alternativeto.net/software/replace-text/ В итоге я пришел к тому что начал писать скрипты для замен на Python. Причины:
Итогом моей работы стала пара программ для множественных замен, вторая из которых брала список замен из .csv файла и обрабатывала столько файлов сколько я в этом .csv прописал, и именно так, как я их прописал. |
Цитата:
|
ShaRP, да, Replace Text довольно примитивная, замену ей недолго состряпать самому "на коленке".
Про Python не соглашусь: в плане работы с текстом он если и выделяется, то непродуманностью и непоследовательностью реализации. Например, find возвращает как бы индекс найденного, но я не могу прямо его передать в другую операцию со строкой, т.к. при отсутствии искомого возвратит "-1" , но это в то же время валидный индекс для последнего символа. |
когда много работал с регекспами, пользовал программку search&replace
язык регекспов у неё весьма простой и логичный, можно задавать в коде неограниченное число шаблонов поиска-замены. Как именно (каков порядок обхода) - не помню, лет 10 как не занимаюсь этим, но было очень удобно. сам софт даже на уровень вин98 был легким, а на сегодняшних монстров - и вовсе не будет заметен. Если в гугле не найдёте - маякните, попробую на старых помойках (дисках) поискать. ================ А если вообще лень или злой работодатель не позволяет ничего ставить - то даже в ворде есть весьма богатый язык регекспов, хотя отрабатывает ворд не столь четко, проглючивает, иногда надо раза по 2-3 прогнать, чтоб схавало замену, или что-либо еще.. Словом, это вариант "для бедных и ленивых" :) |
Цитата:
Я пробовал одно время с Notepad++, но он тогда писал макросы в плохо читаемом виде, мне же было нужно частое редактирование макроса под другие значения. Кроме того, мои задачи могут стоять так что надо - менять надо что-то только внутри определенного блока тегов внутри файла - менять во множестве файлов в разных папках за раз |
ShaRP, у меня там кроме Microsoft Word через прямой слэш упомянут ещё редактор Far Manager'а.
Цитата:
RESearch — поиск и замена с рег.выражениями и многое другое - forum.farmanager.com |
Время: 16:48. |
Время: 16:48.
© OSzone.net 2001-