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

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

?? fnsplit.h

?? zip解壓源碼.
?? H
字號:
/*
    filename:   fnsplit.h
    creater:    liuhaifeng
    date:       2000-07-27
    description:
*/

#include "KString.h"

#define WILDCARDS 0x01
#define EXTENSION 0x02
#define FILENAME  0x04
#define DIRECTORY 0x08
#define DRIVE     0x10

#define MAXPATH   MAX_PATH
#define MAXDRIVE  3
#define MAXDIR    MAX_PATH
#define MAXFILE   MAX_PATH
#define MAXEXT    MAX_PATH

/*
#define MAXPATH   80
#define MAXDRIVE  3
#define MAXDIR    66
#define MAXFILE   9
#define MAXEXT    5
*/

/*---------------------------------------------------------------------*

Name            CopyIt - copies a string to another

Usage           void pascal near CopyIt(char *dst, const char *src,
                                        unsigned maxlen)

Prototype in    local to this module

Description     copies string scr to string dst.

Return value    nothing

*---------------------------------------------------------------------*/
static void pascal near CopyIt(char *dst, const char *src, unsigned maxlen)
{
        if (dst) {
                if(StrLen(src) >= (int)maxlen)//seawind modified,add a int
                {
                        StrLCopy(dst, src, maxlen);
                        dst[maxlen] = 0;
                }
                else
                        StrCpy(dst, src);
        }
}

/*---------------------------------------------------------------------*

Name            DotFound - checks for special dir name cases

Usage           int pascal near DotFound(char *pB);

Prototype in    local to this module

Description     checks for special directory names

*---------------------------------------------------------------------*/
static  int pascal near DotFound(char *pB)
{
        if (*(pB-1) == '.')
                pB--;
        switch (*--pB) {
        case ':'  :
                if (*(pB-2) != '\0')
                        break;
        case '/'  :
        case '\\' :
        case '\0' :
                return 1;
        }
        return 0;
}

/*---------------------------------------------------------------------*

Name            _fnsplit - splits a full path name into its components

Usage           #include <dir.h>
                int _fnsplit(const char *path, char * drive, char * dir,
                             char * name, char * ext);

                void _splitpath(const char *path, char * drive, char * dir,
                             char * name, char * ext);

Related
functions usage void _makepath(char *path, const char *drive, const char *dir,
                            const char *name, const char *ext);

Prototype in    dir.h

Description     _fnsplit takes a file's full path name (path) as a string
                in the form

                        X:\DIR\SUBDIR\NAME.EXT

                and splits path into its four components. It then stores
                those components in the strings pointed to by drive, dir,
                name and ext. (Each component is required but can be a
                NULL, which means the corresponding component will be
                parsed but not stored.)

                The maximum sizes for these strings are given by the
                constants MAXDRIVE, MAXDIR, MAXPATH, MAXNAME and MAXEXT,
                (defined in dir.h) and each size includes space for the
                null-terminator.

                        Constant        (Max.)  String

                        MAXPATH         (80)    path
                        MAXDRIVE        (3)     drive; includes colon (:)
                        MAXDIR          (66)    dir; includes leading and
                                                trailing backslashes (\)
                        MAXFILE         (9)     name
                        MAXEXT          (5)     ext; includes leading dot (.)

                _fnsplit assumes that there is enough space to store each
                non-NULL component. fnmerge assumes that there is enough
                space for the constructed path name. The maximum constructed
                length is MAXPATH.

                When _fnsplit splits path, it treats the punctuation as
                follows:

                * drive keeps the colon attached (C:, A:, etc.)

                * dir keeps the leading and trailing backslashes
                  (\turboc\include\,\source\, etc.)

                * ext keeps the dot preceding the extension (.c, .exe, etc.)

                _splitpath is an MSC-compatible function that is identical
                to _fnsplit, except that is doesn't return a value.

                _splitpath (or _fnsplit) and _makepath are invertible; if you
                split a given path with _splitpath (or _fnsplit), then
                merge the resultant components with _makepath, you end up
                with path.

Return value    _fnsplit returns an integer (composed of five flags,
                defined in dir.h) indicating which of the full path name
                components were present in path; these flags and the components
                they represent are:

                        EXTENSION       an extension
                        FILENAME        a filename
                        DIRECTORY       a directory (and possibly
                                        sub-directories)
                        DRIVE           a drive specification (see dir.h)
                        WILDCARDS       wildcards (* or ? cards)

                _splitpath does not return a value.

*---------------------------------------------------------------------*/
int __cdecl _fnsplit(const char *pathP, char *driveP, char *dirP,
                             char *nameP, char *extP)
{
        register char   *pB;
        register int    Wrk;
        int     Ret;

        char buf[ MAXPATH+2 ];

        /*
          Set all string to default value zero
        */
        Ret = 0;
        if (driveP)
                *driveP = 0;
        if (dirP)
                *dirP = 0;
        if (nameP)
                *nameP = 0;
        if (extP)
                *extP = 0;

        /*
          Copy filename into template up to MAXPATH characters
        */
        pB = buf;
        while (*pathP == ' ')
                pathP++;
        if ((Wrk = StrLen(pathP)) > MAXPATH)
                Wrk = MAXPATH;
        *pB++ = 0;
        StrLCopy(pB, pathP, Wrk);
        *(pB += Wrk) = 0;

        /*
          Split the filename and fill corresponding nonzero pointers
        */
        Wrk = 0;
        for (; ; ) {
                switch (*--pB) {
                case '.'  :
                        if (!Wrk && (*(pB+1) == '\0'))
                                Wrk = DotFound(pB);
                        if ((!Wrk) && ((Ret & EXTENSION) == 0)) {
                                Ret |= EXTENSION;
                                CopyIt(extP, pB, MAXEXT - 1);
                                *pB = 0;
                        }
                        continue;
                case ':'  :
                        if (pB != &buf[2])
                                continue;
                case '\0' :
                        if (Wrk) {
                                if (*++pB)
                                        Ret |= DIRECTORY;
                                CopyIt(dirP, pB, MAXDIR - 1);
                                *pB-- = 0;
                                break;
                        }
                case '/'  :
                case '\\' :
                        if (!Wrk) {
                                Wrk++;
                                if (*++pB)
                                        Ret |= FILENAME;
                                CopyIt(nameP, pB, MAXFILE - 1);
                                *pB-- = 0;
                                if (*pB == 0 || (*pB == ':' && pB == &buf[2]))
                                        break;
                        }
                        continue;
                case '*'  :
                case '?'  :
                        if (!Wrk)
                                Ret |= WILDCARDS;
                default :
                        continue;
                }
                break;
        }
        if (*pB == ':') {
                if (buf[1])
                        Ret |= DRIVE;
                CopyIt(driveP, &buf[1], MAXDRIVE - 1);
        }

        return (Ret);
}

/*
void __cdecl _splitpath(const char *pathP, char *driveP, char *dirP,
                         char *nameP, char *extP)
{
        (void)_fnsplit(pathP,driveP,dirP,nameP,extP);
}
*/

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91久久线看在观草草青青| 精品欧美一区二区久久| 一区二区三区精品| 欧美浪妇xxxx高跟鞋交| 国内精品伊人久久久久av影院 | ㊣最新国产の精品bt伙计久久| 91一区二区在线| 日韩电影一区二区三区四区| 欧美国产亚洲另类动漫| 3d成人h动漫网站入口| 成人永久看片免费视频天堂| 亚洲精品欧美专区| 久久综合色天天久久综合图片| 99精品视频在线播放观看| 日韩精品午夜视频| 亚洲高清免费一级二级三级| 国产精品婷婷午夜在线观看| 欧美一区二区三区电影| 在线看国产日韩| 99久久精品免费| 粉嫩13p一区二区三区| 老司机精品视频线观看86| 日韩精品国产欧美| 日韩成人免费电影| 日韩精品亚洲专区| 蜜臀av一区二区在线免费观看| 一区二区三区影院| 一区二区久久久久| 亚洲亚洲人成综合网络| 视频精品一区二区| 美女视频黄免费的久久| 精品一区二区免费视频| 粉嫩aⅴ一区二区三区四区 | av激情成人网| 91麻豆.com| 日韩一区二区精品在线观看| 精品国产免费久久| 一区二区中文字幕在线| 亚洲综合在线观看视频| 五月天中文字幕一区二区| 免费人成精品欧美精品| 国产精品资源站在线| 成人性色生活片| 欧美日韩黄色影视| 久久新电视剧免费观看| 亚洲精品美腿丝袜| 国产一区欧美日韩| 在线观看网站黄不卡| 日韩欧美久久久| 国产精品久久久久永久免费观看| 亚洲一区免费观看| 成人自拍视频在线| 欧美日韩亚洲综合在线 欧美亚洲特黄一级| 欧美久久久久久久久| 国产精品每日更新| 麻豆国产精品一区二区三区| 在线视频国内一区二区| 中文字幕在线不卡国产视频| 国产在线视频不卡二| 在线观看视频91| 自拍偷拍亚洲激情| 成人av中文字幕| 国产女人aaa级久久久级 | 中文字幕第一区综合| 国产一区二区三区香蕉| 欧美日韩精品电影| 亚洲va韩国va欧美va精品| 成人精品国产福利| 国产精品久久久久影视| 福利一区二区在线| 亚洲午夜在线视频| 欧美性猛交一区二区三区精品| 国产精品女上位| 91美女片黄在线| 亚洲成人av免费| 日韩欧美亚洲一区二区| 精品一区二区三区的国产在线播放| 欧美日韩国产天堂| 免费亚洲电影在线| 国产精品第五页| 欧美欧美午夜aⅴ在线观看| 麻豆精品新av中文字幕| 久久精品视频一区二区三区| 欧美亚洲动漫另类| www.亚洲激情.com| 91精品免费在线| 在线看国产日韩| 色88888久久久久久影院按摩| 国产激情一区二区三区桃花岛亚洲| 精品国免费一区二区三区| 久久精品国产网站| 日本一区二区三区四区在线视频| 91视频.com| 麻豆91精品视频| 中文字幕一区二区三区不卡在线| 国产亚洲欧美在线| 国产jizzjizz一区二区| 亚洲高清视频的网址| 亚洲欧美在线另类| 欧美二区三区91| 欧美色视频在线| 欧美日韩一区不卡| 欧美剧在线免费观看网站| 欧美日韩一级视频| 欧美日本免费一区二区三区| 欧洲av在线精品| 欧美亚洲综合网| 在线视频综合导航| 欧美在线看片a免费观看| 91视频观看免费| 欧美亚洲动漫制服丝袜| 欧美美女激情18p| 日韩欧美123| 欧美国产成人在线| 亚洲成人午夜电影| 久久狠狠亚洲综合| 国产精品正在播放| 欧美三级电影网站| 日韩欧美一区二区免费| 一区视频在线播放| 国产乱码一区二区三区| 欧美亚洲禁片免费| 国产日韩影视精品| 亚洲国产综合91精品麻豆| 精品一区二区三区在线观看国产| 日本视频一区二区| 成人h精品动漫一区二区三区| 91精品综合久久久久久| 久久在线免费观看| 亚洲色图丝袜美腿| 狠狠色狠狠色综合| 日本道色综合久久| 精品国产乱码久久久久久久久 | 久久久久久久久久久久电影| 国产日韩综合av| 另类综合日韩欧美亚洲| 欧美亚洲图片小说| 亚洲综合一区二区| 91免费国产在线| 日本一区二区三区国色天香 | 中文字幕不卡在线观看| 青青草国产精品97视觉盛宴| av在线不卡免费看| 欧美精品一区二区三区很污很色的| 亚洲国产精品久久艾草纯爱| 国产综合色在线视频区| 日韩美女视频在线| 青青青爽久久午夜综合久久午夜| 欧美日韩国产美| 蜜臀av性久久久久av蜜臀妖精| 91精选在线观看| 国产91精品久久久久久久网曝门 | 国产成人精品综合在线观看| 久久久久久久久久美女| 日本二三区不卡| 国产一区二区调教| 26uuu另类欧美亚洲曰本| 国产麻豆精品一区二区| 26uuu精品一区二区| 国产一区啦啦啦在线观看| 国产夜色精品一区二区av| 成人中文字幕合集| 亚洲欧美一区二区三区孕妇| 久久蜜桃av一区精品变态类天堂| 欧美aaa在线| 国产日韩欧美一区二区三区综合 | 美女国产一区二区三区| 日韩一区二区免费在线观看| 日本不卡一区二区| 日韩女同互慰一区二区| 国模冰冰炮一区二区| 国产精品视频九色porn| eeuss鲁片一区二区三区| 中文字幕一区二区三区av| 欧美性高清videossexo| 五月婷婷久久综合| 久久九九国产精品| 在线成人免费观看| 色噜噜久久综合| 国产在线不卡一区| 日韩成人伦理电影在线观看| 中文字幕乱码日本亚洲一区二区 | 国产精品久久三区| 日韩免费高清视频| 欧美一区二区三区四区五区 | 91一区二区在线| 久久狠狠亚洲综合| 亚洲成人免费视频| 亚洲无线码一区二区三区| 中文字幕一区二区三区在线播放 | 免费观看91视频大全| 亚洲成人一区在线| 亚洲成年人网站在线观看| 中文字幕在线不卡| 最新高清无码专区| 亚洲视频一二三| 一区二区三区日本| 亚洲黄色小视频| 一区二区成人在线视频 | 亚洲国产精品国自产拍av|