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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? avc_misc.c

?? 支持各種柵格圖像和矢量圖像讀取的庫
?? C
?? 第 1 頁 / 共 2 頁
字號:
/********************************************************************** * $Id: avc_misc.c,v 1.9 2005/06/03 03:49:59 daniel Exp $ * * Name:     avc_misc.c * Project:  Arc/Info vector coverage (AVC)  BIN<->E00 conversion library * Language: ANSI C * Purpose:  Misc. functions used by several parts of the library * Author:   Daniel Morissette, dmorissette@dmsolutions.ca * ********************************************************************** * Copyright (c) 1999-2005, Daniel Morissette * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), * to deal in the Software without restriction, including without limitation * the rights to use, copy, modify, merge, publish, distribute, sublicense, * and/or sell copies of the Software, and to permit persons to whom the * Software is furnished to do so, subject to the following conditions: *  * The above copyright notice and this permission notice shall be included * in all copies or substantial portions of the Software. *  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER  * DEALINGS IN THE SOFTWARE. ********************************************************************** * * $Log: avc_misc.c,v $ * Revision 1.9  2005/06/03 03:49:59  daniel * Update email address, website url, and copyright dates * * Revision 1.8  2004/08/31 21:00:20  warmerda * Applied Carl Anderson's patch to reduce the amount of stating while * trying to discover filename "case" on Unix in AVCAdjustCaseSensitiveFilename. * http://bugzilla.remotesensing.org/show_bug.cgi?id=314 * * Revision 1.7  2001/11/25 21:38:01  daniel * Remap '\\' to '/' in AVCAdjustCaseSensitiveFilename() on Unix. * * Revision 1.6  2001/11/25 21:15:23  daniel * Added hack (AVC_MAP_TYPE40_TO_DOUBLE) to map type 40 fields bigger than 8 * digits to double precision as we generate E00 output (bug599) * * Revision 1.5  2000/09/26 20:21:04  daniel * Added AVCCoverPC write * * Revision 1.4  2000/09/22 19:45:21  daniel * Switch to MIT-style license * * Revision 1.3  2000/01/10 02:53:21  daniel * Added AVCAdjustCaseSensitiveFilename() and AVCFileExists() * * Revision 1.2  1999/08/23 18:24:27  daniel * Fixed support for attribute fields of type 40 * * Revision 1.1  1999/05/11 02:34:46  daniel * Initial revision * **********************************************************************/#include "avc.h"/********************************************************************** *                          AVCE00ComputeRecSize() * * Computes the number of chars required to generate a E00 attribute * table record. * * Returns -1 on error, i.e. if it encounters an unsupported field type. **********************************************************************/int _AVCE00ComputeRecSize(int numFields, AVCFieldInfo *pasDef,                          GBool bMapType40ToDouble){    int i, nType, nBufSize=0;    /*-------------------------------------------------------------      * Add up the nbr of chars used by each field     *------------------------------------------------------------*/    for(i=0; i < numFields; i++)    {        nType = pasDef[i].nType1*10;        if (nType ==  AVC_FT_DATE || nType == AVC_FT_CHAR ||            nType == AVC_FT_FIXINT )        {            nBufSize += pasDef[i].nSize;        }        else if (nType == AVC_FT_BININT && pasDef[i].nSize == 4)            nBufSize += 11;        else if (nType == AVC_FT_BININT && pasDef[i].nSize == 2)            nBufSize += 6;        else if (bMapType40ToDouble &&                  nType == AVC_FT_FIXNUM && pasDef[i].nSize > 8)        {            /* See explanation in AVCE00GenTableHdr() about this hack to remap             * type 40 fields to double precision floats.             */            nBufSize += 24;  /* Remap to double float */        }        else if ((nType == AVC_FT_BINFLOAT && pasDef[i].nSize == 4) ||                  nType == AVC_FT_FIXNUM )            nBufSize += 14;        else if (nType == AVC_FT_BINFLOAT && pasDef[i].nSize == 8)            nBufSize += 24;        else        {            /*-----------------------------------------------------             * Hummm... unsupported field type...             *----------------------------------------------------*/            CPLError(CE_Failure, CPLE_NotSupported,                     "_AVCE00ComputeRecSize(): Unsupported field type: "                     "(type=%d, size=%d)",                     nType, pasDef[i].nSize);            return -1;        }    }    return nBufSize;}/********************************************************************** *                          _AVCDestroyTableFields() * * Release all memory associated with an array of AVCField structures. **********************************************************************/void _AVCDestroyTableFields(AVCTableDef *psTableDef, AVCField *pasFields){    int     i, nFieldType;    if (pasFields)    {        for(i=0; i<psTableDef->numFields; i++)        {            nFieldType = psTableDef->pasFieldDef[i].nType1*10;            if (nFieldType == AVC_FT_DATE   ||                nFieldType == AVC_FT_CHAR   ||                nFieldType == AVC_FT_FIXINT ||                nFieldType == AVC_FT_FIXNUM)            {                CPLFree(pasFields[i].pszStr);            }        }        CPLFree(pasFields);    }}/********************************************************************** *                          _AVCDestroyTableDef() * * Release all memory associated with a AVCTableDef structure. * **********************************************************************/void _AVCDestroyTableDef(AVCTableDef *psTableDef){    if (psTableDef)    {        CPLFree(psTableDef->pasFieldDef);        CPLFree(psTableDef);    }}/********************************************************************** *                          _AVCDupTableDef() * * Create a new copy of a AVCTableDef structure. **********************************************************************/AVCTableDef *_AVCDupTableDef(AVCTableDef *psSrcDef){    AVCTableDef *psNewDef;    if (psSrcDef == NULL)        return NULL;    psNewDef = (AVCTableDef*)CPLMalloc(1*sizeof(AVCTableDef));    memcpy(psNewDef, psSrcDef, sizeof(AVCTableDef));    psNewDef->pasFieldDef = (AVCFieldInfo*)CPLMalloc(psSrcDef->numFields*                                                     sizeof(AVCFieldInfo));    memcpy(psNewDef->pasFieldDef, psSrcDef->pasFieldDef,            psSrcDef->numFields*sizeof(AVCFieldInfo));   return psNewDef;}/********************************************************************** *                          AVCFileExists() * * Returns TRUE if a file with the specified name exists in the * specified directory. * * For now I simply try to fopen() the file ... would it be more * efficient to use stat() ??? **********************************************************************/GBool AVCFileExists(const char *pszPath, const char *pszName){    char        *pszBuf;    GBool       bFileExists = FALSE;    FILE        *fp;    pszBuf = (char*)CPLMalloc((strlen(pszPath)+strlen(pszName)+1)*                              sizeof(char));    sprintf(pszBuf, "%s%s", pszPath, pszName);    AVCAdjustCaseSensitiveFilename(pszBuf);    if ((fp = VSIFOpen(pszBuf, "rb")) != NULL)    {        bFileExists = TRUE;        VSIFClose(fp);    }    CPLFree(pszBuf);    return bFileExists;}/********************************************************************** *                     AVCAdjustCaseSensitiveFilename() * * Scan a filename and its path, adjust uppercase/lowercases if * necessary, and return a reference to that filename. * * This function works on the original buffer and returns a reference to it. * It does nothing on Windows systems where filenames are not case sensitive. * * NFW: It seems like this could be made somewhat more efficient by * getting a directory listing and doing a case insensitive search in  * that list rather than all this stating that can be very expensive * in some circumstances.  However, at least with Carl's fix this is * somewhat faster. * see: http://buzilla.remotesensing.org/show_bug.cgi?id=314 **********************************************************************/char *AVCAdjustCaseSensitiveFilename(char *pszFname){#ifdef _WIN32    /*-----------------------------------------------------------------     * Nothing to do on Windows     *----------------------------------------------------------------*/    return pszFname;#else    /*-----------------------------------------------------------------

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
在线精品国精品国产尤物884a| 国产一区二区视频在线播放| ㊣最新国产の精品bt伙计久久| 欧美不卡一区二区| 精品日韩一区二区三区免费视频| 欧美久久久久免费| 欧美美女bb生活片| 91精品麻豆日日躁夜夜躁| 日韩一区二区三区精品视频| 欧美精品aⅴ在线视频| 91精品国产综合久久精品性色| 欧美老年两性高潮| 欧美一级免费观看| 精品国产乱码久久久久久1区2区 | 国产精品久久久久久久午夜片| 欧美国产亚洲另类动漫| 综合色中文字幕| 一级日本不卡的影视| 日韩国产精品91| 麻豆91在线播放免费| 国产精品一区二区你懂的| 成人免费视频网站在线观看| 色综合久久久久综合体桃花网| 欧美性猛交xxxxxxxx| 欧美一二三四在线| 欧美国产在线观看| 亚洲成a人片在线观看中文| 久久不见久久见免费视频7| 国产成人av福利| 99re热视频这里只精品| 欧美性大战久久久久久久| 欧美mv和日韩mv的网站| 中文字幕色av一区二区三区| 亚洲线精品一区二区三区八戒| 精品亚洲成a人在线观看| av爱爱亚洲一区| 在线电影欧美成精品| 国产精品久久久久一区二区三区| 国产真实乱子伦精品视频| 成人avav影音| 日韩欧美视频在线| 亚洲免费高清视频在线| 麻豆91小视频| 91视频在线观看| 久久精品一区二区三区四区| 亚洲成人自拍一区| aaa欧美日韩| 久久久另类综合| 免费在线欧美视频| 一本大道久久a久久精二百| 精品久久久久久久人人人人传媒 | 久久精品在这里| 五月婷婷激情综合| 91在线精品一区二区三区| 日韩精品一区二区在线| 亚洲一区在线观看免费观看电影高清| 国产91精品一区二区麻豆亚洲| 日韩你懂的在线播放| 亚洲va天堂va国产va久| 日本丰满少妇一区二区三区| 中文字幕欧美三区| 国产精品一区二区久久不卡| 在线不卡免费欧美| 亚洲电影一级黄| 在线观看视频一区| 亚洲靠逼com| 91国产免费观看| 一区二区三区四区激情| 色婷婷综合激情| 亚洲精品乱码久久久久久久久| av电影天堂一区二区在线| 国产婷婷一区二区| 国产高清成人在线| 国产视频一区二区三区在线观看| 老司机精品视频线观看86| 日韩午夜电影av| 国内精品免费在线观看| 久久欧美中文字幕| 福利一区二区在线观看| 久久久91精品国产一区二区精品| 国产另类ts人妖一区二区| 国产亚洲欧美色| 不卡免费追剧大全电视剧网站| 自拍偷自拍亚洲精品播放| kk眼镜猥琐国模调教系列一区二区| 国产精品丝袜一区| 一本一本久久a久久精品综合麻豆 一本一道波多野结衣一区二区 | 成人丝袜高跟foot| 亚洲人成伊人成综合网小说| 91啦中文在线观看| 亚洲亚洲人成综合网络| 欧美日韩另类一区| 美日韩一区二区| 国产调教视频一区| 91福利国产精品| 美女一区二区三区| 欧美极品aⅴ影院| 色综合中文综合网| 国产麻豆一精品一av一免费| 久久精品一区二区三区av| 成人性生交大片免费看视频在线 | 欧美伦理视频网站| 国产一区二区看久久| 中文字幕中文乱码欧美一区二区 | 日韩高清不卡一区| 国产日韩影视精品| 欧美日韩视频第一区| 激情偷乱视频一区二区三区| 国产精品灌醉下药二区| 欧美久久久影院| 国产69精品久久久久777| 亚洲最新视频在线播放| 精品国产伦理网| 91理论电影在线观看| 精品一区二区三区免费毛片爱| 中文字幕亚洲一区二区va在线| 69久久夜色精品国产69蝌蚪网| 国产精品伊人色| 亚洲成人动漫在线观看| 国产精品久久网站| 日韩欧美国产一区在线观看| 99国产精品久久久久久久久久久| 日韩电影在线免费| 亚洲精品中文字幕在线观看| 精品国产一区a| 欧美日韩一区二区欧美激情| 国产a精品视频| 久久99久久久欧美国产| 亚洲伊人色欲综合网| 国产精品三级av在线播放| 欧美人与禽zozo性伦| 91免费观看在线| 成人综合婷婷国产精品久久免费| 日本美女一区二区| 一区二区三区国产精华| 国产精品国产三级国产有无不卡| 欧美大片一区二区| 在线91免费看| 欧美日韩一区三区四区| 一本到不卡精品视频在线观看| 国产一区在线观看视频| 麻豆极品一区二区三区| 天天综合色天天综合| 亚洲制服丝袜在线| 一区二区国产视频| 亚洲欧美日韩国产成人精品影院| 国产精品初高中害羞小美女文 | 成人av电影在线| 国产乱妇无码大片在线观看| 激情六月婷婷综合| 久久精品国产亚洲5555| 日本v片在线高清不卡在线观看| 午夜久久久久久久久久一区二区| 一区二区三区国产| 午夜精品一区在线观看| 午夜亚洲福利老司机| 日本亚洲电影天堂| 极品美女销魂一区二区三区免费| 美洲天堂一区二卡三卡四卡视频| 毛片不卡一区二区| 国产一区二区三区国产| 国产a视频精品免费观看| 99精品视频一区| 99re这里都是精品| 欧美亚洲自拍偷拍| 欧美一级专区免费大片| 精品国产免费久久| 国产精品久久免费看| 夜夜精品视频一区二区| 丝袜亚洲另类丝袜在线| 久久精品国产久精国产爱| 国产麻豆视频一区| youjizz国产精品| 欧美在线免费视屏| 欧美成人一区二区三区| 久久综合久久99| 成+人+亚洲+综合天堂| 成人的网站免费观看| 色妹子一区二区| 91精品欧美久久久久久动漫| 国产亚洲欧美色| 亚洲激情在线激情| 国内精品久久久久影院色| 粉嫩在线一区二区三区视频| 欧美午夜精品电影| 欧美va亚洲va在线观看蝴蝶网| 国产精品美女久久久久久久久| 亚洲第一主播视频| 国产伦精品一区二区三区免费迷| 不卡欧美aaaaa| 日韩欧美一级二级| 亚洲欧美电影院| 精品一区二区三区欧美| 色狠狠av一区二区三区| 26uuu欧美| 亚洲bt欧美bt精品| 91在线视频播放| 亚洲精品在线免费观看视频| 亚洲自拍与偷拍| bt欧美亚洲午夜电影天堂|