masterspammer (masterspammer) wrote,
masterspammer
masterspammer

Category:

Ура, заработало (структура таблиц в MS Word'е)

Скрипт пока очень крив (он начинался с фигнюшки строчек в 10), его бы преобразовать в ООП (и сделать модулем), но уже работает с таблицами. Всё табличное - строчек на 20. Пока он выводит именно структуру, а надо бы копить и выводить при окончании таблицы - описание свойств строки идёт __В КОНЦЕ__ строки (это свойства 07 (или 0d для вложенных таблиц) символа окончания строки) и в её начале свойств строки и таблицы взять вообще-то неоткуда.

Также сама идея преобразования в HTML плоха; тем более, что где-то в составе CMS есть абстрактные анализаторы и генераторы (пример - анализатор Wiki и генератор HTML) - вот с абстрактным генератором модуль и должен работать.

Логика таблиц такова - есть текущий уровень (изначально он - 0, так как ещё нет никаких таблиц). У каждой ячейки (т.е. у абзаца с itap>=1) itap и есть уровень. Если уровень повышается (открывается ещё несколько уровней, как минимум, 1), то создаются тэги table (сюда бы ещё и tbody), tr и td, флаги открытости строки и ячейки устанавливаются в 1. Если уровень снижается, то (если есть соотв. флаги) закрываются ячейка и строка, таблица закрывается всегда - и закрывается ВСЁ для всех последующих (промежуточных) уровней - если есть таблица, то она уж точно в ячейка, а ячейка в строке; флаги открытости ячейки и строки устанавливаются - если окончилась таблица - мы оказались снова в ячейки строки - конечно же, если ещё остались вложенные таблицы. Если уровень не равен нулю и остаётся неизменным и это конец строки, то закрываются ячейка (если надо) и строка и сбрасываются флаги (сам абзац в этом случае ВСЕГДА пустой и не обрабатываются), если же не конец абзаца, то если нужно (см. флаги) начинаются новые строка и ячейка (и устанавливаются флаги). Всегда кроме случая окончания строки выводится абзац. Если конец ячейки, то она закрывается и сбрасывается флаг.

Алгоритм весьма похож на алгоритм работы со списками, но усложняется двухмерностью таблиц. Совместная работа списков и таблиц пока не реализована.
Tags: .doc, РазборПолётов
Subscribe

  • Третий день в соплях

    Не Covid и то хорошо; кстати, чем-то таким я не болел года так 2 - хорошо помню, потому как к любому ОРВИ относился (бы) очень подозрительно. Пью…

  • Учёт и контроль

    Из правил выживания на пьянке - весы плюс табличка учёта. Если все напитки примерно по 40 градусов, то учёт проще (а по-другому и вне контекста учёта…

  • (no subject)

    Ничего не предвещало беды, лечь мы собирались в 20:00... ну ладно, в 20:30. Чтоб (сакральное слово, говорится с придыханием) __выспаться__...…

  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

  • 0 comments