January 12th, 2010

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

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

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

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

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

Языковое

На первом же курсе у меня встала задача записи (конспектирования) лекций. Нарисовать что-то красивое или странное, схему там какую электронную, формулу или сечение одной геометрической фигуры (3D) другой (2D) - запросто, а вот словами, да ещё по паре страниц в день - увольте!

Пришлось как-то сокращать. Единожды открыв книжку по стенографии, тут же её закрыл - писать быстро, да расшифровывать неприемлемо долго. В итоге своя схема получилось.

В основе - логическая структура высказывания. То есть я __НЕ МОГ__ записать чего-либо (не считая обычной, очень медленной записи) без полного понимания - вообще. Понятное же записывалось "на раз" и быстро и легко и понятно (даже через несколько лет). Получалось, что на лекциях я скорее понимал, чем записывал. Рука работала мало, всегда можно было отвлечься, например, на рисование. Лектор увеличивал скорость (я сидел поближе, но по мне не стоило ориентироваться), я успевал, он снова увеличивал - пока не восставал весь поток.

Контекст был записан на полях, поля были почему-то сверху. Среди контекста был предмет (обозначался значком типа буквы О), название темы, всякие ссылки. Слова были как просто сокр., так и специальные значки, например, человек, связь, который, необходимость, возможность и тому подобное. Значки были конечно не словами, а их частями, типа чел., связ., необходим. и т.д. У значков были эээ... ну какие-то свойства, я их не называл вообще-то. Были (сейчас слова выбрал) хвосты и крылья. Хвосты указывали что это - объект, субъект, свойство, процесс или действие (то есть отсюда для меня были понятия "которость", "которее" и сочетание "не который", если их на русский перевести). Крылья - оттенок значения; обычно оттенки были обобщённый, философский, психологический, тЕмный (то есть слово в теме контекста). "Слова" были связаны. Отношения (имеет отношение к...) указывались скобками (). Исторически у меня получалось что в конце "предложения" закрывалось дофига скобок - символ } означал закрыть __ВСЕ__ открытые скобки - никаких конфликтов - { означало систем. (в зависимости от крыльев и хвостов и системный, систематический, систематизацию, причём и в математическом и даже в анархо-хипповском смысле).

Одной из первых "штук", которые я заметил (они мне мешали записывать лекции) была неоднозначность (точнее - неполнота) языка. Иногда можно сказать фразу, в которой было больше вопросов, чем ответов. Например, значение уменьшается. У меня для монотонного и для статистического (то в верх, то вниз, но в итоге скорее вниз чем вверх) изменения в голове были разные понятия (до всяких лекций и даже до школы - со времён катания с горки), а фраза для меня значила на уровне "они делают на букву 'у'" - то есть или уменьшаются или увеличиваются - что именно, не говорится.

Вторая вещь - непонятная зависимость. Бытие определяет сознание - два слова среднего рода, что здесь объект, а что - субъект - зависит разве что от интонации. В лекциях подобные вещи встречались. Иногда было непонятно.

Тем не менее, такая запись мне скорее помогла в учебных делах, чем мешала. Да, теперь русский язык для меня в каком-то смысле иностранный (я думаю на чём-то другом с вкраплениями русских слов - "Заводной Апельсин" в переводе на русский читали?), да, если я не мог записать, то я честно уходил с лекции читать учебник (и писать "шпаргалики", которые никогда не читал, но процесс их написания был скорее процессом мышления а не подготовки к экзамену); однако в итоге я таки получил свой цвета запёкшейся крови диплом.