Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[18.220.140.5] |
|
Сообщ.
#1
,
|
|
|
Добрый день. Интересует библиотека для разархивирования zip файлов на фортране. Есть ли такая? Если нет, возможно ли такой функционал реализовать, не ли у фортрана ограничений на этот счет?
P.S> Поисковики по этому поводу ничего не сказали, буду благодарен ответу знающего человека. |
Сообщ.
#2
,
|
|
|
собери в статическую/динамическую библиотеку и вызывай из фортрановской имплементации. Или тебе нужно именно фортран-реализация?
|
Сообщ.
#3
,
|
|
|
Предварительно на таком варианте и остановился. Конечно, если бы найти реализацию на фортране, но видимо ее не существует. Или я не прав?
|
Сообщ.
#4
,
|
|
|
Если хочется статической линковки, то почему бы не воспользоваться библиотеками на C (вроде ziplib + gzip), написать простые адаптеры (в фортране все параметры передаются через указатели, поэтому и адаптеры нужны) к нужным функциям.
Чем кстати, фортран компилируется? И в Visual Fortran и в gfortran большая часть их собственных библиотек состоит именно из таких адаптеров к библиотеке C. В частности реализация фортрановских функций SIN, DSIN выглядят примерно так: float SIN(float *x) { return fsin(*x); } // или sin(*x), если не существует float-реализации double DSIN(double *x) { return sin(*x); } |
Сообщ.
#5
,
|
|
|
Видимо так и придется, сложность в том, что код без особых изменений должен компилироваться и в Windows и в UNIX, поэтому фортранная реализация была бы оптимальной.
В любом случае спасибо. |
Сообщ.
#6
,
|
|
|
Так библиотеки почти одинаково и в Windows и в Linux реализованы.
В частности мой пример примерно так выглядит и в gfortran (независимо от порта - Linux, MinGW), и в Visual C. А gzip и ziplib доступны в исходниках, которые уже адаптированы под распространённые компиляторы под обе платформы (там в основном учитываются и обходятся разные глюки в реализациях компиляторов). |