AZJIO |
|
Темы:
48
Сообщения:
585
Участник с: 05 января 2021
|
Некоторое время стало интересно делать посимвольные анализаторы кода. Поэтому один из них css_tidy. Может "сжать" файл удалив лишние пробелы или разжать, а также коррекция, когда разжатый файл просто требует подровнять отступы. Скачать upload.ee, яндекс |
wau |
|
Темы:
161
Сообщения:
1213
Участник с: 11 октября 2013
|
Вот где было бы реально полезно наладить чистку, так это в файлах g-code. Выглядит это примерно так -
Суть в том, что в каждой последующей строке нет нужны повторять то, что задано в предыдущей. Т.е. если - G1 F[#<_pb>] X-1996.033589 Y387.277499 Z16.790000 G1 F[#<_pb>] X-1988.621953 Y394.689134 Z16.790000 G2 F[#<_pb>] I-3.005211 J-34.573228 X-1984.699876 Y394.121083 Z16.790000 то в сокращенном виде это G1 F[#<_pb>] X-1996.033589 Y387.277499 Z16.790000 X-1988.621953 Y394.689134 G2 I-3.005211 J-34.573228 X-1984.699876 Y394.121083 В случае сотен тысяч, а то и нескольких миллионов строк, это имеет значение. Что-то я в сочиненном срипте силами seed делаю (в основном форматирование отступами, числа заменяю переменными и т.п.), но не это. Скрипт запускаю сразу из Geany, как скрипт команды "сборки проекта". |
AZJIO |
|
Темы:
48
Сообщения:
585
Участник с: 05 января 2021
|
wau1. Каков размер файла? 2. Покажи скрипт с seed 3. Сколько времени отрабатывает твой скрипт? Если есть рабочий вариант есть ли смысл что-то менять? |
wau |
|
Темы:
161
Сообщения:
1213
Участник с: 11 октября 2013
|
Мне приходится разбивать файлы из-за их большого размера. Самый большой был ок 40мб 717тыс строк. Он имел множественные фрагменты вида -
Конечно, все это ужасное число строк человек, знающий Питон мог бы заменить одной строкой - https://forum.freecad.org/viewtopic.php?t=89684 Скрипт примитивен, обеспечивает мне читаемость кода вставками табуляций, что дает "сворачивание блоков" в vim & geany (без всяких там типа Электрон), а также замену явно заданных "особых значений" на переменные. Скрипт таков -
Скрипт даже на больших файлах выполняется очень быстро. |
AZJIO |
|
Темы:
48
Сообщения:
585
Участник с: 05 января 2021
|
G1 F[#<_pb>] X-626.921907 Y571.388056 Z3.499990из этих данных я понял, что удалив пробелы в начале строк далее идёт всегда "G" далее идет число от 0 до 9, далее F[....] удаляем его по наличию F и квадратных скобок (если число после G повторяется). Далее до конца строки оставляем как есть. То есть запомнить число после G состоящее из одной цифры и по наличию такого же числа удаляем от G до закрывающей квадратной скобки "]". Всё верно? |