亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來(lái)到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? avc_e00read.c

?? 支持各種柵格圖像和矢量圖像讀取的庫(kù)
?? C
?? 第 1 頁(yè) / 共 5 頁(yè)
字號(hào):
     *----------------------------------------------------------------*/    nCoverPrecision = _AVCE00ReadBuildSqueleton(psInfo, papszCoverDir);    /* Ignore warnings produced while building squeleton */    CPLErrorReset();    CSLDestroy(papszCoverDir);    papszCoverDir = NULL;    psInfo->iCurSection = 0;    psInfo->iCurStep = AVC_GEN_NOTSTARTED;    psInfo->bReadAllSections = TRUE;    /*-----------------------------------------------------------------     * Init the E00 generator.     *----------------------------------------------------------------*/    psInfo->hGenInfo = AVCE00GenInfoAlloc(nCoverPrecision);    /*-----------------------------------------------------------------     * Init multibyte encoding info     *----------------------------------------------------------------*/    psInfo->psDBCSInfo = AVCAllocDBCSInfo();    /*-----------------------------------------------------------------     * If an error happened during the open call, cleanup and return NULL.     *----------------------------------------------------------------*/    if (CPLGetLastErrorNo() != 0)    {        AVCE00ReadClose(psInfo);        psInfo = NULL;    }    return psInfo;}/********************************************************************** *                          AVCE00ReadOpenE00() * * Open a E00 file for reading. * * Returns a new AVCE00ReadE00Ptr handle or NULL if the file could * not be opened or if it does not appear to be a valid E00 file. * * The handle will eventually have to be released with * AVCE00ReadCloseE00(). **********************************************************************/AVCE00ReadE00Ptr AVCE00ReadOpenE00(const char *pszE00FileName){    AVCE00ReadE00Ptr psRead;    VSIStatBuf       sStatBuf;    FILE             *fp;    char             *p;    CPLErrorReset();    /*-----------------------------------------------------------------     * pszE00FileName must be a valid file that can be opened for     * reading     *----------------------------------------------------------------*/    if (pszE00FileName == NULL || strlen(pszE00FileName) == 0 ||        VSIStat(pszE00FileName, &sStatBuf) == -1 ||        VSI_ISDIR(sStatBuf.st_mode))    {        CPLError(CE_Failure, CPLE_OpenFailed,                  "Invalid E00 file path: %s.",                  pszE00FileName?pszE00FileName:"(NULL)");        return NULL;    }    if (NULL == (fp = fopen(pszE00FileName, "r")))        return NULL;    /*-----------------------------------------------------------------     * Alloc the AVCE00ReadE00Ptr handle     *----------------------------------------------------------------*/    psRead = (AVCE00ReadE00Ptr)CPLCalloc(1,            sizeof(struct AVCE00ReadInfoE00_t));    psRead->hFile = fp;    psRead->pszCoverPath = CPLStrdup(pszE00FileName);    psRead->eCurFileType = AVCFileUnknown;    /*-----------------------------------------------------------------     * Extract the coverage name from the coverage path.     *----------------------------------------------------------------*/    if (NULL != (p = strrchr(psRead->pszCoverPath, '/')) ||        NULL != (p = strrchr(psRead->pszCoverPath, '\\')) ||        NULL != (p = strrchr(psRead->pszCoverPath, ':')))    {        psRead->pszCoverName = CPLStrdup(p + 1);    }    else    {        psRead->pszCoverName = CPLStrdup(psRead->pszCoverPath);    }    if (NULL != (p = strrchr(psRead->pszCoverName, '.')))    {        *p = '\0';    }    /*-----------------------------------------------------------------     * Make sure there was no error until now before we scan file.     *----------------------------------------------------------------*/    if (CPLGetLastErrorNo() != 0)    {        AVCE00ReadCloseE00(psRead);        return NULL;    }    psRead->hParseInfo = AVCE00ParseInfoAlloc();    /*-----------------------------------------------------------------     * Scan the E00 file for sections     *----------------------------------------------------------------*/    _AVCE00ReadScanE00(psRead);    AVCE00ReadRewindE00(psRead);    CPLErrorReset();    if (psRead->numSections < 1)    {        AVCE00ReadCloseE00(psRead);        return NULL;    }    psRead->bReadAllSections = TRUE;    /*-----------------------------------------------------------------     * If an error happened during the open call, cleanup and return NULL.     *----------------------------------------------------------------*/    if (CPLGetLastErrorNo() != 0)    {        AVCE00ReadCloseE00(psRead);        psRead = NULL;    }    return psRead;}/********************************************************************** *                          AVCE00ReadClose() * * Close a coverage and release all memory used by the AVCE00ReadPtr * handle. **********************************************************************/void AVCE00ReadClose(AVCE00ReadPtr psInfo){    CPLErrorReset();    if (psInfo == NULL)        return;    CPLFree(psInfo->pszCoverPath);    CPLFree(psInfo->pszInfoPath);    CPLFree(psInfo->pszCoverName);    if (psInfo->hFile)        AVCBinReadClose(psInfo->hFile);    if (psInfo->hGenInfo)        AVCE00GenInfoFree(psInfo->hGenInfo);    if (psInfo->pasSections)    {        int i;        for(i=0; i<psInfo->numSections; i++)        {            CPLFree(psInfo->pasSections[i].pszName);            CPLFree(psInfo->pasSections[i].pszFilename);        }        CPLFree(psInfo->pasSections);    }    AVCFreeDBCSInfo(psInfo->psDBCSInfo);    CPLFree(psInfo);}/********************************************************************** *                          AVCE00ReadCloseE00() * * Close a coverage and release all memory used by the AVCE00ReadE00Ptr * handle. **********************************************************************/void AVCE00ReadCloseE00(AVCE00ReadE00Ptr psRead){    CPLErrorReset();    if (psRead == NULL)        return;    CPLFree(psRead->pszCoverPath);    CPLFree(psRead->pszCoverName);    if (psRead->hFile)    {        fclose(psRead->hFile);        psRead->hFile = 0;    }    if (psRead->pasSections)    {        int i;        for(i=0; i<psRead->numSections; i++)        {            CPLFree(psRead->pasSections[i].pszName);            CPLFree(psRead->pasSections[i].pszFilename);        }        CPLFree(psRead->pasSections);    }    /* These Free calls handle NULL's */    AVCE00ParseInfoFree(psRead->hParseInfo);    psRead->hParseInfo = NULL;    CPLFree(psRead);}/********************************************************************** *                          _AVCIncreaseSectionsArray() * * Add a number of structures to the Sections array and return the * index of the first one that was added.  Note that the address of the * original array (*pasArray) is quite likely to change! * * The value of *pnumItems will be updated to reflect the new array size. **********************************************************************/static int _AVCIncreaseSectionsArray(AVCE00Section **pasArray, int *pnumItems,                                    int numToAdd){    int i;    *pasArray = (AVCE00Section*)CPLRealloc(*pasArray,                                            (*pnumItems+numToAdd)*                                                    sizeof(AVCE00Section));    for(i=0; i<numToAdd; i++)    {        (*pasArray)[*pnumItems+i].eType = AVCFileUnknown;        (*pasArray)[*pnumItems+i].pszName = NULL;        (*pasArray)[*pnumItems+i].pszFilename = NULL;        (*pasArray)[*pnumItems+i].nLineNum = 0;        (*pasArray)[*pnumItems+i].nFeatureCount = -1;    }    i = *pnumItems;    (*pnumItems) += numToAdd;    return i;}/********************************************************************** *                         _AVCE00ReadFindCoverType() * * This functions tries to establish the coverage type by looking * at the coverage directory listing passed as argument. * * Returns one of AVCCoverV7 for Arc/Info V7 (Unix) coverages, or *                AVCCoverPC for PC Arc/Info coverages. *                AVCCoverWeird for an hybrid between V7 and PC * * If coverage type cannot be established then AVCCoverTypeUnknown is  * returned. **********************************************************************/static AVCCoverType _AVCE00ReadFindCoverType(char **papszCoverDir){    int         i, nLen;    GBool       bFoundAdfFile=FALSE, bFoundArcFile=FALSE,                 bFoundTableFile=FALSE, bFoundDbfFile=FALSE;    /*-----------------------------------------------------------------     * Scan the list of files, looking for well known filenames.     * Start with the funky types first...     *----------------------------------------------------------------*/    for(i=0; papszCoverDir && papszCoverDir[i]; i++)    {        nLen = strlen(papszCoverDir[i]);        if (nLen > 4 && EQUAL(papszCoverDir[i]+nLen-4, ".adf") )        {            bFoundAdfFile = TRUE;        }        else if (nLen > 4 && EQUAL(papszCoverDir[i]+nLen-4, ".dbf") )        {            bFoundDbfFile = TRUE;        }        else if (EQUAL(papszCoverDir[i], "arc") ||                 EQUAL(papszCoverDir[i], "cnt") ||                 EQUAL(papszCoverDir[i], "pal") ||                 EQUAL(papszCoverDir[i], "lab") ||                 EQUAL(papszCoverDir[i], "prj") ||                 EQUAL(papszCoverDir[i], "tol") )        {            bFoundArcFile = TRUE;        }        else if (EQUAL(papszCoverDir[i], "aat") ||                 EQUAL(papszCoverDir[i], "pat") ||                 EQUAL(papszCoverDir[i], "bnd") ||                 EQUAL(papszCoverDir[i], "tic") )        {            bFoundTableFile = TRUE;        }    }    /*-----------------------------------------------------------------     * Check for PC Arc/Info coverage - variant 1.     * These PC coverages have files with no extension (e.g. "ARC","PAL",...)     * and their tables filenames are in the form "???.dbf"     *----------------------------------------------------------------*/    if (bFoundArcFile && bFoundDbfFile)        return AVCCoverPC;    /*-----------------------------------------------------------------     * Check for PC Arc/Info coverage - variant 2.     * looks like a hybrid between AVCCoverPC and AVCCoverV7     * These PC coverages have files with .adf extension (e.g."ARC.ADF"),     * and their tables filenames are in the form "???.dbf"     *----------------------------------------------------------------*/    if (bFoundAdfFile && bFoundDbfFile)        return AVCCoverPC2;    /*-----------------------------------------------------------------     * Check for the weird coverages.     * Their coverage files have no extension just like PC Coverages,      * and their tables have 3 letters filenames with no extension     * either (e.g. "AAT", "PAT", etc.)     * They also have a ../info directory, but we don't really need     * to check that (not yet!).

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日本一区二区综合亚洲| 欧美最新大片在线看| 久久精品人人爽人人爽| 国模娜娜一区二区三区| 久久久久久**毛片大全| 国产成人高清在线| 国产精品国产馆在线真实露脸| 欧美激情一区二区在线| 亚洲天堂网中文字| 91黄色免费看| 精品精品国产高清a毛片牛牛| 麻豆精品视频在线| 国产欧美综合在线观看第十页| 国产成人高清视频| 亚洲主播在线播放| 日韩欧美一区二区久久婷婷| 国产成人啪免费观看软件 | 久久精品国产99国产| 久久综合狠狠综合久久综合88| 成人黄色av电影| 午夜免费欧美电影| 久久精品一区二区三区不卡牛牛| 91在线观看美女| 日本欧美在线观看| 国产精品麻豆一区二区| 欧美三级韩国三级日本一级| 国产一区二区电影| 中文字幕佐山爱一区二区免费| 日本道精品一区二区三区 | 欧美日韩国产bt| 日韩精品一区二区三区四区视频| 国产在线一区观看| 亚洲精品国产无天堂网2021| 欧美电影影音先锋| www..com久久爱| 日本女优在线视频一区二区| 久久久久成人黄色影片| 欧美日韩一级视频| 波多野结衣在线一区| 免费人成在线不卡| 亚洲欧美国产77777| 久久男人中文字幕资源站| 麻豆成人91精品二区三区| 樱桃国产成人精品视频| 久久久久国产精品厨房| 日韩午夜三级在线| 欧美三级乱人伦电影| 色综合中文字幕国产 | 久久午夜电影网| 成人va在线观看| 男女男精品网站| 亚洲一区二区三区中文字幕在线| 国产精品久99| 狠狠色伊人亚洲综合成人| 亚洲国产精品一区二区www在线 | 亚洲线精品一区二区三区 | 亚洲一区影音先锋| 1区2区3区欧美| 国产精品欧美一级免费| 亚洲国产成人av网| 国产一区视频在线看| 一区二区三区 在线观看视频 | 欧美精品高清视频| 日本高清不卡aⅴ免费网站| 岛国精品一区二区| 国产超碰在线一区| 国产自产2019最新不卡| 久久精品国产77777蜜臀| 石原莉奈在线亚洲三区| 亚洲成人自拍偷拍| 亚洲一区欧美一区| 亚洲第一在线综合网站| 亚洲综合区在线| 亚洲欧美日韩成人高清在线一区| 国产精品久久久久久久久免费樱桃| 中文字幕电影一区| 国产日韩欧美一区二区三区乱码 | 婷婷中文字幕综合| 亚洲午夜一二三区视频| 亚洲高清视频在线| 日韩电影在线免费看| 日本强好片久久久久久aaa| 日本v片在线高清不卡在线观看| 日日夜夜一区二区| 久久草av在线| 国产宾馆实践打屁股91| 成人av午夜电影| 91蜜桃免费观看视频| 在线视频国产一区| 欧美裸体一区二区三区| 日韩久久久精品| 久久久久久99久久久精品网站| 国产日韩视频一区二区三区| 亚洲欧洲综合另类在线| 婷婷综合另类小说色区| 国产制服丝袜一区| 99精品视频一区二区三区| 在线观看欧美日本| 精品人伦一区二区色婷婷| 欧美国产一区二区| 亚洲综合偷拍欧美一区色| 日本大胆欧美人术艺术动态| 国产在线精品一区二区| 91网上在线视频| 欧美军同video69gay| 久久久三级国产网站| 亚洲欧美欧美一区二区三区| 日本在线不卡一区| 成人污视频在线观看| 在线视频国内一区二区| 2020国产成人综合网| 亚洲精品久久7777| 国产一区二区伦理片| 色哦色哦哦色天天综合| 欧美mv和日韩mv国产网站| ...中文天堂在线一区| 日本一不卡视频| 91网址在线看| 精品国产免费人成在线观看| 亚洲色图丝袜美腿| 韩国三级电影一区二区| 在线观看国产91| 国产日韩欧美高清在线| 日本中文在线一区| 日本精品视频一区二区| 久久嫩草精品久久久久| 亚洲曰韩产成在线| 成人综合在线观看| 欧美成人猛片aaaaaaa| 夜夜嗨av一区二区三区网页| 国产一区在线精品| 欧美一区二区精品久久911| 国产精品人成在线观看免费| 免费高清成人在线| 亚洲四区在线观看| 国产真实乱子伦精品视频| 中文字幕高清一区| 欧美精品一二三| 色综合天天综合网天天看片| 午夜精品爽啪视频| 精品国产一区二区亚洲人成毛片| 欧美日韩二区三区| 国产精品毛片久久久久久| 黑人精品欧美一区二区蜜桃| 欧美另类高清zo欧美| 亚洲欧美一区二区三区国产精品 | 日韩制服丝袜先锋影音| 99视频精品在线| 国产亚洲制服色| 久久国产福利国产秒拍| 欧美一卡二卡三卡| 天天色综合天天| 欧美日韩国产色站一区二区三区| 亚洲欧洲一区二区在线播放| 国产91高潮流白浆在线麻豆| 亚洲精品一区二区三区在线观看 | 欧美理论片在线| 一区二区三区欧美激情| 99久久精品国产网站| 国产精品美女视频| 北条麻妃一区二区三区| 国产精品美女久久久久久| 不卡一区二区中文字幕| 国产精品免费观看视频| 成人午夜精品在线| 国产精品久久久久久久蜜臀| 成人免费观看av| 中文字幕日韩av资源站| 欧美吻胸吃奶大尺度电影| 亚洲女爱视频在线| 色综合激情五月| 夜夜亚洲天天久久| 欧美日韩高清影院| 日韩av一级片| 精品国产欧美一区二区| 国产·精品毛片| 国产精品初高中害羞小美女文| 99久久精品免费看国产免费软件| 日韩一区在线看| 欧美性大战久久久| 日韩精品国产欧美| 精品动漫一区二区三区在线观看| 精品亚洲免费视频| 国产精品污网站| 91偷拍与自偷拍精品| 性久久久久久久久| 日韩精品一区二区三区三区免费| 国产一区二区影院| 自拍偷拍欧美精品| 欧美精品色综合| 狠狠狠色丁香婷婷综合久久五月| 国产精品久久久久久久久久免费看| 91一区二区三区在线观看| 亚洲午夜羞羞片| 久久久综合激的五月天| aaa亚洲精品| 免费欧美在线视频| 欧美韩日一区二区三区| 在线精品观看国产| 久久国产剧场电影|