Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > Две части программы на разных компиляторах


Автор: eg13 6.8.2013, 18:59
Не знаю, в ту ли тему я пишу свой вопрос smile
А состоит он вот в чем. Написал я довольно большое приложение на WinApi. Писал в Visual C++ 11. Но тут вдруг возникла надобность прикрутить к моей программе импорт/экспорт в .xls/.xlsx файл.
А мне не очень-то хочется возиться с OLE, и к тому же есть вариант, что на компьютере, на который ставится моя программа нету MS Excel, да и вообще офиса нет.
И тут я нашел библиотеку для Борланда, которая могла бы запросто решить мою проблему. Но переписывать приложение под борланд тоже не вариант.
Есть ли такая возможность часть кода скомпилить на Борланде, а потом прикрутить к проекту в Вижуал Студио? Кто что по этому поводу скажет?

Автор: bsa 6.8.2013, 19:25
Если сделаешь в виде библиотеки с Сишными функциями, то проблем не будет. Главное, выделяй память и освобождай только в одной среде.

Автор: xvr 7.8.2013, 13:08
Цитата(eg13 @  6.8.2013,  18:59 Найти цитируемый пост)
А мне не очень-то хочется возиться с OLE,

Цитата(eg13 @  6.8.2013,  18:59 Найти цитируемый пост)
И тут я нашел библиотеку для Борланда,

А вы уверены, что эта 'библиотека для Борланда' не делает то, что вам надо, через тот же самый OLE? В 'мире Борланда' это самый распространенный способ  smile 

Автор: tulebaev 9.9.2013, 17:19
.xlsx-файл представляет собой ZIP архив.
Так что аналогичную проблему я решал простой распаковкой в память нужных данных.

Автор: akizelokro 9.9.2013, 22:49
Цитата(tulebaev @  9.9.2013,  17:19 Найти цитируемый пост)
.xlsx-файл представляет собой ZIP архив.


Я вот бухаю второй день, но ничерта xslx файл не рпедставляет из себя zip-архив.

Добавлено через 3 минуты и 26 секунд
Находишь библиотеку, котораяработает без установленного Офиса. Это я тебе по чесноку говорю. Как программер, продававший VBA приложения китайцам из Сан-Франциско, потом же юзавший и php-юиюлиотеки для Экселя.
А всё отсальное это ..как бы тебе сказать.
Когда Эксель или Офись ставится, он дофикха чего много меняет.

Добавлено через 13 минут и 29 секунд
xlsx файл это по сути xml файл (если есть вопросы, то я на елансе в клубе Excel Guru)
притом, Учсуд открывает и некие xml-файлы в определенном формате, так же успешно как и xls[-файлы. Задача у тебя найти просто определённый парсер и забить на закон Мэрфи
"Эксперт - любой человек не из нашего города"

Автор: xvr 9.9.2013, 23:25
Цитата(akizelokro @  9.9.2013,  22:49 Найти цитируемый пост)
Я вот бухаю второй день, но ничерта xslx файл не рпедставляет из себя zip-архив.

Попробуйте на трезвую голову  smile 
Код

> unzip -t securities.xlsx
Archive:  securities.xlsx
    testing: [Content_Types].xml      OK
    testing: _rels/.rels              OK
    testing: xl/_rels/workbook.xml.rels   OK
    testing: xl/workbook.xml          OK
    testing: xl/theme/theme1.xml      OK
    testing: xl/worksheets/sheet2.xml   OK
    testing: xl/worksheets/sheet3.xml   OK
    testing: xl/worksheets/sheet1.xml   OK
    testing: xl/sharedStrings.xml     OK
    testing: xl/styles.xml            OK
    testing: docProps/app.xml         OK
    testing: docProps/core.xml        OK
No errors detected in compressed data of securities.xlsx.


Цитата(akizelokro @  9.9.2013,  22:49 Найти цитируемый пост)
xlsx файл это по сути xml файл

Это набор xml файлов, весьма запутанного содержимого (См. Office Open XML format он же  ECMA-376 он же  ISO 29500:2008)
Генерация xmlx со всеми его возможностями весьма объемная вещь (хотя и довольно простая).

Если нужно ограниченное подмножество, то генератор делается довольно тривиально

Автор: akizelokro 10.9.2013, 04:17
Код

Это набор xml файлов, весьма запутанного содержимого (См. Office Open XML format он же  ECMA-376 он же  ISO 29500:2008)
Генерация xmlx со всеми его возможностями весьма объемная вещь (хотя и довольно простая).

Вообще-то попробую и на трезвую голову. Ага, тут походу zip-архив. Пить, значит,надо меньше.  smile  
Пусть попробует тогда усеченную версию в виде xml-файла в "Экселевской" версии.  Там как раз то, что в VBA делает импорт/экспорт файла.

А, вообще, это всё глупости. Пусть ищёт опенсорсную либу под С++, навроде ExcelPHP и прилаживает её к проге.
В своё время комитет явно пропарил мозги с тем, что не задал в С++ работу с регулярными выражениями. Это моё чуть более трезвое мнение. С++ очень много теряет именно на этом.

Автор: akizelokro 10.9.2013, 07:07
Проблема в том, что работа с регулярными выражениями должна была быть в языке реализована лет10 так назад. Для нормальной обработки текстов, что уже для языков де-факто стандарт. 
Это по факту бы добавило разработчиков, а следовательно, и новых библиотек.

Автор: xvr 10.9.2013, 10:47
Цитата(akizelokro @  10.9.2013,  04:17 Найти цитируемый пост)
Пусть ищёт опенсорсную либу под С++, навроде ExcelPHP и прилаживает её к проге.

О! Если найдется, скажите мне тоже. Мне пока таковой найти не удалось (только C#)  smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)