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

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

?? ogrutils.cpp

?? mitab,讀取MapInfo的地圖文件
?? CPP
?? 第 1 頁 / 共 3 頁
字號:
                          papszArgv[iArg+1], VSIStrerror( errno ) );
                CSLDestroy( papszReturn );
                return -1;
            }
            
            while( (pszLine = CPLReadLine( fpOptFile )) != NULL )
            {
                char **papszTokens;
                int i;

                if( pszLine[0] == '#' || strlen(pszLine) == 0 )
                    continue;

                papszTokens = CSLTokenizeString( pszLine );
                for( i = 0; papszTokens != NULL && papszTokens[i] != NULL; i++)
                    papszReturn = CSLAddString( papszReturn, papszTokens[i] );
                CSLDestroy( papszTokens );
            }

            VSIFClose( fpOptFile );
                
            iArg += 1;
        }

/* -------------------------------------------------------------------- */
/*      --formats                                                       */
/* -------------------------------------------------------------------- */
#ifdef OGR_ENABLED
        else if( EQUAL(papszArgv[iArg], "--formats") )
        {
            int iDr;

            printf( "Supported Formats:\n" );

            OGRSFDriverRegistrar *poR = OGRSFDriverRegistrar::GetRegistrar();
        
            for( iDr = 0; iDr < poR->GetDriverCount(); iDr++ )
            {
                OGRSFDriver *poDriver = poR->GetDriver(iDr);

                if( poDriver->TestCapability( ODrCCreateDataSource ) )
                    printf( "  -> \"%s\" (read/write)\n", 
                            poDriver->GetName() );
                else
                    printf( "  -> \"%s\" (readonly)\n", 
                            poDriver->GetName() );
            }

            CSLDestroy( papszReturn );
            return 0;
        }
#endif /* OGR_ENABLED */

/* -------------------------------------------------------------------- */
/*      --help-general                                                  */
/* -------------------------------------------------------------------- */
        else if( EQUAL(papszArgv[iArg],"--help-general") )
        {
            printf( "Generic GDAL utility command options:\n" );
#ifdef OGR_ENABLED
            printf( "  --formats: report all configured format drivers.\n" );
#endif /* OGR_ENABLED */
            printf( "  --optfile filename: expand an option file into the argument list.\n" );
            printf( "  --config key value: set system configuration option.\n" );
            printf( "  --debug [on/off/value]: set debug level.\n" );
            printf( "  --help-general: report detailed help on general options.\n" );
            CSLDestroy( papszReturn );
            return 0;
        }

/* -------------------------------------------------------------------- */
/*      carry through unrecognised options.                             */
/* -------------------------------------------------------------------- */
        else
        {
            papszReturn = CSLAddString( papszReturn, papszArgv[iArg] );
        }
    }

    *ppapszArgv = papszReturn;

    return CSLCount( *ppapszArgv );
}

/************************************************************************/
/*                            OGRParseDate()                            */
/*                                                                      */
/*      Parse a variety of text date formats into an OGRField.          */
/************************************************************************/

/**
 * Parse date string.
 *
 * This function attempts to parse a date string in a variety of formats
 * into the OGRField.Date format suitable for use with OGR.  Generally 
 * speaking this function is expecting values like:
 * 
 *   YYYY-MM-DD HH:MM:SS+nn
 *
 * The seconds may also have a decimal portion (which is ignored).  And
 * just dates (YYYY-MM-DD) or just times (HH:MM:SS) are also supported. 
 * The date may also be in YYYY/MM/DD format.  If the year is less than 100
 * and greater than 30 a "1900" century value will be set.  If it is less than
 * 30 and greater than -1 then a "2000" century value will be set.  In 
 * the future this function may be generalized, and additional control 
 * provided through nOptions, but an nOptions value of "0" should always do
 * a reasonable default form of processing.
 *
 * The value of psField will be indeterminate if the function fails (returns
 * FALSE).  
 *
 * @param pszInput the input date string.
 * @param psField the OGRField that will be updated with the parsed result.
 * @param nOptions parsing options, for now always 0. 
 *
 * @return TRUE if apparently successful or FALSE on failure.
 */

int OGRParseDate( const char *pszInput, OGRField *psField, int nOptions )

{
    int bGotSomething = FALSE;

    psField->Date.Year = 0;
    psField->Date.Month = 0;
    psField->Date.Day = 0;
    psField->Date.Hour = 0;
    psField->Date.Minute = 0;
    psField->Date.Second = 0;
    psField->Date.TZFlag = 0;
    
/* -------------------------------------------------------------------- */
/*      Do we have a date?                                              */
/* -------------------------------------------------------------------- */
    while( *pszInput == ' ' )
        pszInput++;
    
    if( strstr(pszInput,"-") != NULL || strstr(pszInput,"/") != NULL )
    {
        psField->Date.Year = atoi(pszInput);
        if( psField->Date.Year < 100 && psField->Date.Year >= 30 )
            psField->Date.Year += 1900;
        else if( psField->Date.Year < 30 && psField->Date.Year >= 0 )
            psField->Date.Year += 2000;

        while( *pszInput >= '0' && *pszInput <= '9' ) 
            pszInput++;
        if( *pszInput != '-' && *pszInput != '/' )
            return FALSE;
        else 
            pszInput++;

        psField->Date.Month = atoi(pszInput);
        if( psField->Date.Month > 12 )
            return FALSE;

        while( *pszInput >= '0' && *pszInput <= '9' ) 
            pszInput++;
        if( *pszInput != '-' && *pszInput != '/' )
            return FALSE;
        else 
            pszInput++;

        psField->Date.Day = atoi(pszInput);
        if( psField->Date.Day > 31 )
            return FALSE;

        while( *pszInput >= '0' && *pszInput <= '9' )
            pszInput++;

        bGotSomething = TRUE;
    }

/* -------------------------------------------------------------------- */
/*      Do we have a time?                                              */
/* -------------------------------------------------------------------- */
    while( *pszInput == ' ' )
        pszInput++;
    
    if( strstr(pszInput,":") != NULL )
    {
        psField->Date.Hour = atoi(pszInput);
        if( psField->Date.Hour > 23 )
            return FALSE;

        while( *pszInput >= '0' && *pszInput <= '9' ) 
            pszInput++;
        if( *pszInput != ':' )
            return FALSE;
        else 
            pszInput++;

        psField->Date.Minute = atoi(pszInput);
        if( psField->Date.Minute > 59 )
            return FALSE;

        while( *pszInput >= '0' && *pszInput <= '9' ) 
            pszInput++;
        if( *pszInput != ':' )
            return FALSE;
        else 
            pszInput++;

        psField->Date.Second = atoi(pszInput);
        if( psField->Date.Second > 59 )
            return FALSE;

        while( *pszInput >= '0' && *pszInput <= '9' 
               || *pszInput == '.' )
            pszInput++;

        bGotSomething = TRUE;
    }

    // No date or time!
    if( !bGotSomething )
        return FALSE;

/* -------------------------------------------------------------------- */
/*      Do we have a timezone?                                          */
/* -------------------------------------------------------------------- */
    while( *pszInput == ' ' )
        pszInput++;
    
    if( *pszInput == '-' || *pszInput == '+' )
    {
        // +HH integral offset
        if( strlen(pszInput) <= 3 )
            psField->Date.TZFlag = 100 + atoi(pszInput) * 4;

        else if( pszInput[3] == ':'  // +HH:MM offset
                 && atoi(pszInput+4) % 15 == 0 )
        {
            psField->Date.TZFlag = 100 
                + atoi(pszInput+1) * 4
                + (atoi(pszInput+4) / 15);

            if( pszInput[0] == '-' )
                psField->Date.TZFlag = -1 * (psField->Date.TZFlag - 100) + 100;
        }
        else if( isdigit(pszInput[3]) && isdigit(pszInput[4])  // +HHMM offset
                 && atoi(pszInput+3) % 15 == 0 )
        {
            psField->Date.TZFlag = 100 
                + static_cast<GByte>(CPLScanLong(pszInput+1,2)) * 4
                + (atoi(pszInput+3) / 15);

            if( pszInput[0] == '-' )
                psField->Date.TZFlag = -1 * (psField->Date.TZFlag - 100) + 100;
        }
        else if( isdigit(pszInput[3]) && pszInput[4] == '\0'  // +HMM offset
                 && atoi(pszInput+2) % 15 == 0 )
        {
            psField->Date.TZFlag = 100 
                + static_cast<GByte>(CPLScanLong(pszInput+1,1)) * 4
                + (atoi(pszInput+2) / 15);

            if( pszInput[0] == '-' )
                psField->Date.TZFlag = -1 * (psField->Date.TZFlag - 100) + 100;
        }
        // otherwise ignore any timezone info.
    }

    return TRUE;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
色婷婷久久一区二区三区麻豆| 欧美色成人综合| 亚洲3atv精品一区二区三区| 欧美电影免费观看高清完整版在 | 亚洲国产综合人成综合网站| 久久婷婷综合激情| 欧美日高清视频| av电影在线观看一区| 精品一区二区久久久| 亚洲午夜精品17c| 中文字幕人成不卡一区| 精品第一国产综合精品aⅴ| 欧美日精品一区视频| 本田岬高潮一区二区三区| 国产曰批免费观看久久久| 日韩成人伦理电影在线观看| 亚洲男人的天堂网| 国产精品天干天干在观线| 精品999久久久| 91精品国产91久久综合桃花| 欧美自拍偷拍午夜视频| 91片黄在线观看| www.在线欧美| 99久久国产免费看| 99国产麻豆精品| 成人免费高清在线| 丰满少妇在线播放bd日韩电影| 久久99精品久久久| 久久99精品网久久| 国产一区二区三区日韩| 激情国产一区二区| 在线国产电影不卡| 99re成人在线| 91免费看片在线观看| 91色九色蝌蚪| 色久综合一二码| 欧美亚洲国产一区二区三区 | 国产成人精品免费网站| 黄页视频在线91| 国产伦精品一区二区三区免费| 国产一区二区三区蝌蚪| 国产伦精品一区二区三区在线观看| 黑人巨大精品欧美一区| 国产精品亚洲午夜一区二区三区 | 欧美一级二级三级蜜桃| 日韩三级电影网址| 精品乱人伦一区二区三区| 日韩一区二区免费视频| 精品国产3级a| 欧美激情一二三区| 一区二区在线观看免费| 午夜激情久久久| 蜜桃在线一区二区三区| 国产一区欧美日韩| 成人综合婷婷国产精品久久| 91视频观看视频| 欧美久久一二区| 久久久久久久久伊人| 亚洲婷婷综合久久一本伊一区| 亚洲激情校园春色| 日韩福利电影在线| 国产一区在线观看视频| 色诱视频网站一区| 8v天堂国产在线一区二区| 精品乱人伦一区二区三区| 国产精品九色蝌蚪自拍| 亚洲一二三四区| 捆绑紧缚一区二区三区视频| 成熟亚洲日本毛茸茸凸凹| 欧美色国产精品| 久久精品亚洲精品国产欧美| 一区二区在线免费观看| 秋霞电影网一区二区| 成人免费视频caoporn| 色老汉av一区二区三区| 日韩三级.com| 亚洲特黄一级片| 久久精品国产澳门| 99久久综合国产精品| 7777精品伊人久久久大香线蕉超级流畅 | 欧美日韩精品一区二区| 精品国产免费一区二区三区四区| 亚洲欧美在线视频观看| 免费成人性网站| 91一区二区在线观看| 日韩精品一区二区三区视频 | 欧美伊人久久久久久午夜久久久久| 欧美喷潮久久久xxxxx| 国产日产欧美一区| 五月天丁香久久| av资源网一区| 久久久久久97三级| 五月综合激情婷婷六月色窝| 成人a免费在线看| 欧美一级片在线看| 亚洲一区二区三区视频在线播放| 国产伦精一区二区三区| 91精品国产乱| 一区二区三区av电影| 丁香五精品蜜臀久久久久99网站 | 蜜桃av一区二区| 日本伦理一区二区| 国产日韩v精品一区二区| 免费一区二区视频| 欧美亚洲综合色| 国产精品每日更新在线播放网址| 琪琪久久久久日韩精品| 欧美综合亚洲图片综合区| 欧美国产一区视频在线观看| 麻豆成人av在线| 欧美疯狂性受xxxxx喷水图片| 亚洲视频小说图片| 成人av午夜影院| 中文字幕精品一区二区三区精品| 美洲天堂一区二卡三卡四卡视频| 欧美亚一区二区| 亚洲欧美另类综合偷拍| 成人av综合一区| 中文字幕欧美国产| 国产精品91一区二区| 精品久久久网站| 男女性色大片免费观看一区二区| 欧美丰满美乳xxx高潮www| 亚洲成av人片一区二区三区| 欧美色爱综合网| 亚洲妇女屁股眼交7| 欧美日韩你懂得| 亚洲国产wwwccc36天堂| 欧美亚洲一区二区在线观看| 亚洲综合激情另类小说区| 欧美最猛性xxxxx直播| 亚洲国产精品综合小说图片区| 色婷婷亚洲综合| 亚洲影院理伦片| 欧美精品v日韩精品v韩国精品v| 午夜av区久久| 精品久久一区二区三区| 91精品国产免费| 免费观看日韩av| 精品国产sm最大网站| 国内外成人在线视频| 久久久久九九视频| 成人激情黄色小说| 亚洲精品成人在线| 91精品欧美福利在线观看| 久久精品噜噜噜成人88aⅴ| 2021久久国产精品不只是精品| 国产美女娇喘av呻吟久久| 中文字幕第一区第二区| 不卡在线观看av| 亚洲第一主播视频| 日韩欧美亚洲另类制服综合在线| 国产乱对白刺激视频不卡| 中文字幕第一区综合| 色综合久久综合网97色综合| 一级日本不卡的影视| 欧美精品欧美精品系列| 久久精品国产亚洲aⅴ| 国产午夜精品久久久久久久| 91麻豆国产精品久久| 午夜视频一区二区| 久久麻豆一区二区| 色综合一区二区三区| 日韩精品久久理论片| 久久免费电影网| 色综合一区二区三区| 蜜臀av国产精品久久久久| 国产精品午夜在线| 欧美日韩一区二区三区四区| 狠狠v欧美v日韩v亚洲ⅴ| 亚洲少妇最新在线视频| 日韩一区二区免费在线电影| 成人黄页在线观看| 视频一区视频二区在线观看| 国产午夜精品一区二区三区视频 | 精品国偷自产国产一区| 成人一区二区三区在线观看| 亚洲国产日产av| 国产亚洲一区字幕| 欧美日韩中文字幕精品| 国产成人午夜精品影院观看视频| 亚洲一区二区三区四区在线免费观看| 91精品国产乱| 日本伦理一区二区| 国产成人精品免费看| 日韩国产在线观看| 国产精品灌醉下药二区| 精品日产卡一卡二卡麻豆| 在线一区二区三区四区五区| 国内精品伊人久久久久av影院| 一区二区三区加勒比av| 久久久无码精品亚洲日韩按摩| 欧美日韩卡一卡二| 91亚洲国产成人精品一区二三 | 亚洲美女淫视频| 久久久美女艺术照精彩视频福利播放| 欧美性猛交xxxx乱大交退制版| 岛国一区二区在线观看| 久久99蜜桃精品| 三级欧美韩日大片在线看|