Наконец-то вышел наш сборник рецептов про С++ разработку под Android.
Решил написать статью, о том, как сделать выгрузку данных в Excel файл по шаблону и считывать данные из Excel.
Началось всё с того, что на работе, дали указание, уйти от MS Office, на бесплатные аналоги.
У нас уже была система выгрузки, основанная на библиотеке “Microsoft.Office. Interop.Excel” и много готовых шаблонов, для выгрузки тех или иных отчётов.
Поэтому надо было найти бесплатную библиотеку, работающую с офисом. И сделать так, чтоб выгрузка работала по той же системе, что и раньше. Ибо переделывать все шаблоны и структуру, не хотелось.
Вот я и наткнулся на OpenXML. И думал, сейчас по быстрому найду решение в интернете и всё готово (т.к. на это было выделено мало времени). Но подходящего решения так и не нашёл, поэтому и решил написать эту статью, для тех у кого будет, такая же проблема.
Саму библиотеку, можно скачать бесплатно с сайта Micrisoft (я использовал в проекте OpenXML sdk 2.5 “ OpenXMLSDKV25.msi ”)
здесь.
После скачивания “OpenXMLSDKV25.msi ”, устанавливаем и заходим в папку
“C:Program FilesOpen XML SDKV2.5lib” там лежит библиотека, которая нам понадобится, мы её подключим к проекту (ниже будет описано, как).
Проект был написан на Visual Studio 2010 (Framework 4.0).
Ниже пример шаблона (сделан для теста) “C:Templatestemplate.xlsx”.
Читать полностью »
Так вышло, что у меня получилось принять участие в работе конференции, посвящённой C++. Уровень, конечно, не GoingNative: доклады были разного уровня. Как очень сильные и интересные, так и совсем пустые. Самым главным для меня была атмосфера — давно я ни с кем лично не обсуждал столько интересных тем. Это мне так понравилась, что я загорелся идеей создать в Санкт-Петербурге C++ User Group, чтобы больше общаться лично с коллегами по цеху. Но об этом как-нибудь потом, а пока о конференции. Не буду описывать и пересказывать все доклады, отмечу только наиболее интересные мне темы и темы, которые затрагивались почти в каждом докладе.
Читать полностью »
Добрый день тебе, Читатель.
Причиной написания этой статьи стало моё увлечение C# и некотоые наблюдения, изложенные ниже.
Я и помогавшие мне тренеры по избранной мной дисциплине, применяли свой опыт и наблюдательность, преследуя простую цель: Хоть кому-то облегчить жизнь программиста, сделать обучение лучше и удобней. К тому же это такое, своего рода, инсайдерство — Чистой воды GNU философия, приложенная к Майкрософтовскому продукту.
Как и многие другие, я столкнулся с отсутствием систематических и позволяющих получить понимание предмета материалов, рассчитанных на людей, к программированию ранее отношения не имевших. Говоря иначе, стало ясно, что — Нету в Укрнете такого ресурса или библиотеки с online консультантом профи, которые давали бы возможность взять и понять основы программирования. Вы скажете, минуточку, а как же Сертификационные центры Майкрософт. Есть ещё мощный и системный «Кибер Бионик Систематикс». Есть академия «ШАГ», прости Господи, ставшая притчей во языцех. Но все же обучающая. Все же…
Конечно, всё это есть. Платно, но ладно — «Бог с ними». Лишь бы доступно. Лишь бы с пользой для людей…
Здесь речь пойдёт не совсем об этом. Здесь статья о Старте. Той ситуации, когда человек хочет научиться и ищет информацию. Ищет. Ищет. Хочет. Очень хочет. И, всё-же, находит (Речь же всё таки идёт о наших студентах:) и, конечно-же, делает ошибки (Речь же всё таки идёт о наших студентах:).
Вот на их (ошибок) базе и базе здравого чувства юмора, мы и построили данный материал.
Надеемся, он понравится Вам. Читать полностью »
Когда вы находитесь в поиске нужной информации в интернете, то попутно находите еще много того, что вам интересно, но не нужно в данный момент — это и есть полезная информация. Так и с опытом: кроме основных навыков, вы со временем приобретаете множество второстепенных, которые особо-то и не продашь, т.е. опыт, за который никто не заплатит. Эти навыки бывают полезны и при большой их концентрации на единицу сотрудника все-таки имеют цену. Это как инвестиции в науку: прибыль от вложений если и будет, то очень и очень не скоро.
Имея некоторый опыт коммерческой разработки в каком-то количестве лет и еще немного докоммерческого, т.е университетского, со всеми участиями в околоденежных проектах и грантах с преподавателями, накопился некоторый багаж взглядов и выводов, которыми хотелось бы поделиться в данной статье.
Сразу оговорюсь, что это будут лично мои выводы, с которыми многие могут быть и не согласны. Буду признателен за конструктивные и познавательные комментарии и описания фрагментов вашего опыта. Не хотелось бы попыток «священных войн» в комментариях. Помните объявления о работе в 90-х с фразой «Не Гербалайф»? Аналогично — «Не холивар».
В статье затрону три темы:
Эти части имеют слабую связь. Как-то получилось, что любовь к слабым связям в разработке программного обеспечения просочились и в работу над данным материалом.
Четкой идеологической линии «Делай так и будет тебе счастье» нет. Основная мысль, которую я хотел вложить в материал — не стоит что-то идеализировать.
Иногда смотришь на какую-то кляксу и, казалось бы, ничего она не изображает, но стоит немного обвести на ней контуры как сразу вырисовывается четкая и понятная фигура. Маловероятно что в статье вы найдете что-то особо новое. Это контур над кляксой своего опыта. Получилось весьма длинно, местами может показаться что слишком разжевано, но это всего лишь описание некоторого опыта, с примерами, какими-то размышлениями, которые идут от взглядов на кодирование до взглядов на проекты и их управление через такой немаловажный фактор, как поиск работы.
Итак, некоротко и местами несерьезно о серьезном…
В прошлом топике я рассказывал о том, как мы с другом решили ради развлечения написать свой встраиваемый язык программирования для платформы .NET. У первой версии был серьезный недостаток — парсер был реализован на F# с помощью сторонней библиотеки. Из-за этого требовалась куча зависимостей, парсер работал медленно, а поддержка его была крайне муторным занятием.
Очевидно, что парсер нужно было переписать на C#, но при мысли о написании парсера с нуля вдруг находилась дюжина других срочных дел. Таким образом таск перекидывался и откладывался практически полгода и казался непосильным, а в итоге был сделан за 4 дня. Под катом я расскажу об удобном способе, позволившим реализовать парсер достаточно сложной грамматики без использования сторонних библиотек и не тронуться умом, а также о том, как это позволило улучшить язык LENS.
Но обо всем по порядку.
Читать полностью »
Рассмотрим простую задачу: есть некоторый достаточно большой неизменный набор чисел, к нему осуществляется множество запросов на наличие некоторого числа в этом наборе, необходимо максимально быстро эти запросы обрабатывать. Одно из классических решений заключается в формировании отсортированного массива и обработке запросов через бинарный поиск. Но можно ли добиться более высокой производительности, чем в классической реализации? В этой статье мне хотелось бы рассказать про Cache-Conscious Binary Search. В данном алгоритме предлагается переупорядочить элементы массива таким образом, чтобы использование кэша процессора происходило максимально эффективно.Читать полностью »
В продолжении общей, предновогодней истерии, решил написать свою игрушку. За основу взята игра Minecraft, а язык программирования C#.
В игре присутствуют следующие блоки:
Возможности:
Картинка для привлечения внимания:
Лично мне кажется весь этот ажиотаж вокруг языков 4 поколения, и компактных програм, надуманной напыщенностью.
Поэтому публикацией следующего кода я выражаю протест.
Читать полностью »