mapGetAnySxfInfoByName не возвращает ноль, если передать путь к несуществующему файлу.
Хотя я мог опять что-то перепутать =)
Я один раз опечатался и в параметрах запуска указал несуществующий файл, и в логах не было сообщения о том что не удалось получить информацию об sxf.
Возвращает -1.
И это даже наверное правильно, потому что может быть пустой SXF, не содержащий ни одного объекта (теоретически), и тогда код возврата должен быть нулевым - ноль объектов.
Но в комментариях везде написано про ноль:
Хотя я мог опять что-то перепутать =)
Код |
---|
QByteArray sxfKoi8r = gis::common::convertStringToKOI8_R(sxfFile.absoluteFilePath()); long rc = panorama::mapGetAnySxfInfoByName(sxfKoi8r.constData(), info.m_sxfInfo, info.m_sxfSheetInfo); if (rc == 0){ qDebug() << __FUNCTION__ << "can not get sxf info for" << sxfFile.absoluteFilePath(); return info; } |
Я один раз опечатался и в параметрах запуска указал несуществующий файл, и в логах не было сообщения о том что не удалось получить информацию об sxf.
Возвращает -1.
Код |
---|
$ ls 200t02w.RSC M3827.sxf $ ~/run.sh ~/isup3 SxfUtil m3827.sxf 200t02w.RSC 2>&1| grep mapGetAnySxf getInfo rc of mapGetAnySxfInfoByName -1 $ ~/run.sh ~/isup3 SxfUtil M3827.sxf 200t02w.RSC 2>&1| grep mapGetAnySxf getInfo rc of mapGetAnySxfInfoByName 10775 |
И это даже наверное правильно, потому что может быть пустой SXF, не содержащий ни одного объекта (теоретически), и тогда код возврата должен быть нулевым - ноль объектов.
Но в комментариях везде написано про ноль:
Код |
---|
// Запросить паспортные данные из файлов SXF, TXF, MAP, SIT, SITX // по имени файла // name - имя файла карты в одном из вышеперечисленных форматов // Структуры MAPREGISTER и LISTREGISTER описаны в mapcreat.h // rscname - адрес буфера для записи имени классификатора (может быть 0) // rsize - длина буфера в байтах // sheetname - адрес буфера для записи длинного имени карты (может быть 0) // ssize - длина буфера в байтах // securitycode - адрес поля для записи кода степени секретности (может быть 0) // ( 0 - не установлено, 1 - открытая информация (unclassified), // 2 - информация с ограниченным доступом (restricted), // 3 - информация для служебного пользования (confidential), // 4 - секретная информация (secret), 5 - совершенно секретная информация (topsecret)) // Возвращает число объектов в карте // При ошибке возвращает ноль _VECIMP long int _VECAPI mapGetAnySxfInfoByNamePro(const WCHAR * name, MAPREGISTEREX * mapreg, LISTREGISTER * sheet, WCHAR * rscname, long int rsize, WCHAR * sheetname, long int ssize, long int * securitycode); _VECIMP long int _VECAPI mapGetAnySxfInfoByNameUn(const WCHAR * name, MAPREGISTEREX * mapreg, LISTREGISTER * sheet); _VECIMP long int _VECAPI mapGetAnySxfInfoByName(const char * name, MAPREGISTEREX * mapreg, LISTREGISTER * sheet); |