Сообщество программистов Autodesk в СНГ

ADN Club => AutoCAD .NET API => Тема начата: Марина от 30-11-2015, 22:41:18

Название: Нахождение пустой ячейки в псевдо-таблице.
Отправлено: Марина от 30-11-2015, 22:41:18
Доброго времени суток!!


Пару дней назад нашла я тут https://sites.google.com/site/bushmansnetlaboratory/sendbox/lab/eksport-narisovannyh-liniami-tablic-v-excel очень полезный для меня код с экспортом таблицы в эксель. Я немного переделала его, добавила Мтекст и вывод в текстовый файл. Но вот проблема в чем, не могу догадаться, как распознать пустую ячейку в такой таблице. Подскажите, пожалуйста...
Название: Re: Нахождение пустой ячейки в псевдо-таблице.
Отправлено: Андрей Бушман от 30-11-2015, 22:52:26
Код очень старый и выбранный в нём алгоритм, мягко говоря не слишком хорош. Он не годится для того, чтобы обрабатывать пустые ячейки.
Название: Re: Нахождение пустой ячейки в псевдо-таблице.
Отправлено: Марина от 30-11-2015, 22:55:05
Я понимаю, но познания мои еще не столь глубоки, а результат уже нужен..
Название: Re: Нахождение пустой ячейки в псевдо-таблице.
Отправлено: Андрей Бушман от 30-11-2015, 23:01:42
Подправленный алгоритм мне видится таким:
1. Попросить пользователя указать прямоугольную область, в которую попадает вычерченная таблица (текст и линии).
2. На основе нарисованных ячеек сформировать временный набор регионов.
3. Проверить каждый регион на предмет нахождения в нём текста.
4. На основе полученных данных сформировать результат.
Название: Re: Нахождение пустой ячейки в псевдо-таблице.
Отправлено: Андрей Бушман от 30-11-2015, 23:09:59
В принципе, можно и без регионов обойтись, проанализировав конечные точки всех линий таблицы и тем самым получив информацию обо всех ячейках. Количество уникальных координат Y (за вычетом 1) равно количеству строк. Количество уникальных координат X (за вычетом 1) равно количеству столбцов.

Затем, анализируя длины и координаты линий можно понять, какие "ячейки" объединены. Сформировав массив таких "ячеек" (с координатами двух их углов, расположенных по диагонали др. от друга) вы уже сможете анализировать координаты каждого текста, выясняя, в какой ячейке он находится. Соответственно, станет понятным - содержит ли ячейка текст или же она пустая.
Название: Re: Нахождение пустой ячейки в псевдо-таблице.
Отправлено: Марина от 30-11-2015, 23:21:17
Спасибо за подсказку, я постараюсь реализовать.
Название: Re: Нахождение пустой ячейки в псевдо-таблице.
Отправлено: Марина от 28-01-2016, 16:00:55
Андрей, спасибо еще раз, получился неплохой конвертер из "нарисованных" таблиц в таблицы Автокада.