среда, 6 февраля 2013 г.

связь один ко многим 1с

Что касается первого пункта, то я уже высказался . Теперь разберём и сворачивание консольного приложения в системный трэй. В “Корпорации” почему-то эту возможность тоже исключили из перечня поддерживаемых, прикрываясь благими намерениями: мол, консольное приложение предназначено для работы с командной строкой и простейшиего интерактивного диалога с пользователем. Если же вам нужно приложение, работающее в фоне, то используйте Service. Если хотите полноценное WindowsForm приложение в трее, то вот Pпожалуйста – компонента NotifyIcon к вашим услугам. Но как раз то в трэй иногда и надо свернуть что-то простейшее, не отвлекающее. Доставть его оттуда в редких случаях и обратно оставлять работать. Короче настолько простое, что использование махины WindowsForm и Service в этом случае неоправданно дорого.

Наслаждаясь программированием на языке C# Pи исповедуя традиционные подходы в решении повседневных задач, столкнулся в своей практике только с двумя моментам, которые немного напрягли: отсутсвие полноценной поддержки старых добрых ini-файлов и неожиданно неочевидный способ для кооперирования консольного приложения и системного трея.

цикла, посвящённого структуреP файла документа фотошопа psd обсуждалась “дикость” этого формата, описывались телесные муки, душевные переживания Pи кармические наказания тому, кто парсил или только собирается парсить этот формат… Установлено, что псд-файл состоит из пяти секций. Автор клятвенно заверял, что будет исправно описывать каждую секцию в отдельной статье, но затем не удержался – и рассмотрел там же (во встпулении) 1-ю секцию, которая оказалось совсем простой (всего-то 26 байт).

В грамотно спроектированной программе должно учитываться множество нюанасов. К сожалению, хотяP с++ Pи исповедует парадигму ООП, но делает это несколько своеообразно. Так, например, в нём разрешено множественное наследование классов. На первый взгляд это кажется разумным и такая возможность считается очень привлекательной, но на практике, как правило, сопряжено со многими трудностями и свидетельствует о плохой архитектуре программы. Возьмём к примеру, пресловутое ромбовидное наследование.

Продолжая описывать внутреннее устройство psd файла ( ) , едва успев начать, мы вдруг подобрались к самой его середине, к третьей секции (напомню, всего их пять). Этот блок хотя и носит многообещающее название (Image Resources), самой картинки всё ещё не содержит. Здесь содержится различная информация, относящаяся как к psd в целом, так и к отдельным слоям. Финальная картинка целиком содержится в пятой секции, при условии, что файл сохранялся в режиме максимальной совместимости. Но гораздо больший интерес представляет четвёртый блок, в котором собственно и хранятся изображения каждого канала в каждом слое. Но чтобы добраться до четвёртой части, надо пройти третью. Звучит банально, и выполнить это можно также банально.

Эта статья обещает быть самой объёмной и информативной из всего , так как содержит наиболее важную информацию о псд файле, а секция, которая здесь будет описана, имеет самый большой как абсолютный размер (в байтах), так и относительный (в логических блоках информации). Четвёртый блок (не путать с 4-м энергоблоком АЭС из Сталкера) содержит в себе огромное число информации, которая зачастую чередуется таким образом, что даже авторы (далее просто официальный документ)Pне могут вразумительно её описать. В этом документе есть информация, которая не только ничего не объясняет, а наоборот, запутывает и является ошибочной. Ну об этом по порядку.

Итак, последняя, заключительная статья , венчающая все наши наработки в области парсинга psd, и позволяющая целиком прочитать содержащееся в psd изображение. По правде говоря, эта секция (Image Data) лично для меня представляет мало интереса, так как основная полезная информация содержится в слоях 4-й секции и описана соответственно, в предыдущей, четвертой статье. Но в той статье я умолчал про то, как изображение декодировать. Теперь восполним этот пробел. Кроме того, этот блок информации может понадобиться тем, кто желает получить составное изображение из фотошоповского документа, не вдаваясь в детали. Например, просмотровщику графических файлов совсем необязательно знать что-либо о слоях и режимах блендинга, масках и эффектах; достаточно прочитать эту последнюю секцию, которая содержит готовое композитное изображение. Также немаловажно отметить то, что эта секция может вообще отсутствовать в psd в том случае, если документ не сохранялся в режиме максимальной совместимости. Но узнать о её наличии или отсутствии можно лишь прочитав предыдущие блоки (или по крайне узнав их размеры и пропустив соответствующее число байт).

Программирование от 1-го лица

Комментариев нет:

Отправить комментарий