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

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

?? archiver_old.cpp

?? 非常好用的五子棋游戲源碼
?? CPP
字號:
// Created:11-16-98
// By Jeff Connelly

// Archiver example using ComprLib

#include "comprlib.h"
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>

#if 0
************************** Archive structure ******************************
This header is present only at the beginning:
OFFSET              Count TYPE   Description
0x0000                   4 char   ID="ARCH"
0x0004                   4 char   ID="IVE" followed by 1Ah
0x0008                   1 dword  Files in archive (up to over a million!)

For each file, there is:
OFFSET              Count TYPE   Description
0x0000                  1 byte   Misc flags, bitmapped:
                                 Bits numbered: 7654 3210
                                 0 - Compressed
                                 1 - CRC-32 stored
                                 2 - Comment
                                 3 - File in archive (else deleted)
                                 4 to 7 - Compression method if compressed
                                 (see table 0x0000)
0x0000                  1 dword   Size of file in the archive (not orig size)
????                    1 dword   If compressed: original size
????                    1 dword   If CRC-32 stored: CRC-32
????                    1 word    If comment: comment length
????                    ? char    If comment: comment text
????                    ? byte    File contents

TABLE 0x0000: Compression methods
0000 - Not used, set if not compressed
0001 - RLE method 1
0010 - RLE method 2
0011 - LZSS
0100 - Inverted (encryption sort of)
#endif

// Help message
const char* help = "Archives files to an archiver\n"
                   "\tARCHIVER command archive [files...]\n"
                   "Valid commands are: \n"
                   "a       Add files to archive\n"
                   "x       Extract files from archive\n"
                   "l       List files in archive\n"
                   "\n";
// Archive
FILE* arc;
char* archive;
unsigned long files_in_archive;

// struct representing part of a file in the archive.  If would be nice if
// we could just fwrite this to the file, but it contains things that are
// only included if some flags are set.
typedef struct
{
    char flags;
    unsigned long size;
    unsigned long origsize;
    unsigned long crc32;
    unsigned short commentlen;
    char* comment;
    char* file;
} MEMBER;

#define FLAG_COMPRESSED     0x01
#define FLAG_CRC32          0x02
#define FLAG_COMMENT        0x04
#define FLAG_INARCHIVE      0x08

// Opens 'archive' and validates
bool open_archive()
{
    if (!archive)
        return false;
    arc = fopen(archive, "r+b");
    fflush(arc);
    if (!arc)
        return false;
    char* sig = (char*)malloc(9);
    fread (sig, 1, 8, arc);
    sig[8] = 0;
    if (!strcmp(sig, "ARCHIVE\032"))
    {
        fclose(arc);
        return false;
    }
    fread (&files_in_archive, 1, 4, arc);
    free (sig);
}

unsigned long file_size(FILE* fp)
{
    unsigned long pos = ftell(fp);
    fseek(fp, 0, SEEK_END);
    unsigned long ret = ftell(fp);
    fseek(fp, pos, SEEK_SET);
    return ret;
}


// Writes the file 'member' to the archive
void read_member(MEMBER& file)
{
    fread (&file.flags, 1, 1, arc);
    fread (&file.size, 1, 4, arc);
    if (file.flags & FLAG_COMPRESSED)
        fread (&file.origsize, 1, 4, arc);
    else
        file.origsize = 0;
    if (file.flags & FLAG_CRC32)
        fread (&file.crc32, 1, 4, arc);
    else
        file.crc32 = 0;
    if (file.flags & FLAG_COMMENT)
    {
        fread (&file.commentlen, 1, 4, arc);
        file.comment = (char*)xmalloc(file.commentlen);
        fread (file.comment, 1, file.commentlen, arc);
    } else {
        file.commentlen = 0;
        file.comment = NULL;
    }
    file.file = (char*)xmalloc(file.size);
    fread (file.file, 1, file.size, arc);
}

// Frees the memory allocated
void destroy_member(MEMBER& file)
{
    xfree(file.file);
    xfree(file.comment);
}

// Writes 'file' to the archive
void write_member(MEMBER& file)
{
    fwrite (&file.flags, 1, 1, arc);
    fwrite (&file.size, 1, 4, arc);
    if (file.flags & FLAG_COMPRESSED)
        fwrite (&file.origsize, 1, 4, arc);
    if (file.flags & FLAG_CRC32)
        fwrite (&file.crc32, 1, 4, arc);
    if (file.flags & FLAG_COMMENT)
    {
        fwrite (&file.commentlen, 1, 4, arc);
        fwrite (file.comment, 1, file.commentlen, arc);
    }
    fwrite (file.file, 1, file.size, arc);
}

// Add 'count' 'files' to the archive
void add_files(int count, char* files[])
{
    int i;
    MEMBER file;

    arc = fopen(archive, "ab");
    if (!arc)
    {
        printf("Cannot open %s\n", archive);
        exit (1);
    }

    for (i = 0; i < count; ++i)
    {
        printf ("Writing %s...\n", files[i]);
        FILE* fp = fopen(files[i], "rb");
        if (!fp)
        {
            printf ("Cannot open %s\n", files[i]);
            exit (3);
        }
        file.size = file_size(fp);
        file.file = (char*)xmalloc(file.size);
        fread(file.file, 1, file.size, arc);
        file.flags = 0;
        write_member(file);
        xfree(file.file);
        fclose(fp);
    }
}

void extract_files(int count, char* files[])
{
}

void list_files(int count, char* files[])
{
}

int main(int argc, char* argv[])
{
    char cmd;

    if (argc == 1)
    {
        printf(help);
        exit (0);
    }

    cmd = tolower(argv[1][0]);

    if (argc > 2)           // If the archive filename is specified, copy it
    {                       // to 'archive'
        archive = (char*)xmalloc(strlen(argv[2]));
        strcpy (archive, argv[2]);
    } else {                // No archive filename specified
        archive = NULL;
    }


    switch (cmd)
    {
    case 'a': add_files(argc - 2, &argv[3]); break;
    case 'x': extract_files(argc - 2, &argv[3]); break;
    case 'l': list_files(argc - 2, &argv[3]); break;
    default: break;
    };

    return 0;
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲123区在线观看| 国产精品久久夜| 奇米影视一区二区三区| 在线播放视频一区| 亚洲成国产人片在线观看| 欧美三级一区二区| 日韩精品乱码免费| 精品国偷自产国产一区| 成人影视亚洲图片在线| 亚洲蜜桃精久久久久久久| 欧美日韩一区二区欧美激情| 久久99精品国产麻豆不卡| 国产日韩一级二级三级| 99精品偷自拍| 亚洲国产精品影院| 久久亚洲精华国产精华液| 成人国产精品免费观看视频| 亚洲综合丝袜美腿| 欧美成人欧美edvon| 成人av在线一区二区三区| 亚洲国产综合在线| 亚洲精品在线电影| 91美女福利视频| 美腿丝袜亚洲一区| 国产精品成人在线观看| 欧美日韩大陆一区二区| 国产精品99久久久久久久女警| 亚洲色图一区二区| 日韩视频一区二区| 色哟哟亚洲精品| 九一九一国产精品| 亚洲一区二区三区在线| 久久久久九九视频| 欧美精品亚洲一区二区在线播放| 国产精品亚洲第一区在线暖暖韩国| 亚洲综合区在线| 国产亚洲精品7777| 91精品在线麻豆| 91色.com| 粉嫩欧美一区二区三区高清影视| 首页国产丝袜综合| 亚洲乱码日产精品bd| 国产亚洲精品bt天堂精选| 欧美疯狂性受xxxxx喷水图片| www.欧美亚洲| 国产一区二区三区在线观看免费视频 | 日韩精品成人一区二区在线| 欧美国产一区二区| 精品国偷自产国产一区| 欧美色视频在线观看| 成人黄色一级视频| 国产美女主播视频一区| 日本不卡视频在线观看| 一个色综合av| 国产精品乱子久久久久| 久久久久国产一区二区三区四区| 91精品国产综合久久小美女| 欧美在线制服丝袜| av电影一区二区| 成人网页在线观看| 国产呦萝稀缺另类资源| 偷窥少妇高潮呻吟av久久免费| 亚洲男人的天堂在线观看| 国产精品久久久久精k8| 国产人成亚洲第一网站在线播放| 欧美精品一区二区三区久久久| 91精品国产综合久久国产大片| 欧美午夜免费电影| 欧洲中文字幕精品| 日本高清不卡aⅴ免费网站| 成人18精品视频| 99国产精品视频免费观看| 成人午夜激情影院| 成人黄色电影在线| a美女胸又www黄视频久久| 99久久免费精品高清特色大片| 成人精品鲁一区一区二区| 成人亚洲一区二区一| 国产aⅴ综合色| 成年人午夜久久久| 91蜜桃视频在线| 欧美性色黄大片| 制服丝袜日韩国产| 91精品国产综合久久久久久| 日韩欧美一区二区久久婷婷| 日韩视频一区二区三区在线播放| 精品成人一区二区三区| 久久久久久久久久久久电影| 国产欧美日韩三区| 国产精品国产三级国产三级人妇| 成人欧美一区二区三区黑人麻豆| 亚洲精品水蜜桃| 亚洲不卡av一区二区三区| 日本在线不卡视频| 精品一区免费av| 粉嫩aⅴ一区二区三区四区| 99热这里都是精品| 欧美日韩在线不卡| 欧美成人vps| 国产精品美女久久久久aⅴ国产馆 国产精品美女久久久久av爽李琼 国产精品美女久久久久高潮 | 精品在线一区二区三区| 国产精品一区二区你懂的| 99国产欧美另类久久久精品| 欧美日韩一区精品| xvideos.蜜桃一区二区| 日韩美女视频一区二区| 亚洲一区电影777| 免费精品视频最新在线| 成人一区二区三区| 欧美日韩在线一区二区| 久久婷婷成人综合色| 日韩一区中文字幕| 青青草原综合久久大伊人精品 | 中文字幕一区二区三区色视频| 亚洲中国最大av网站| 麻豆视频一区二区| 成人网页在线观看| 欧美精品 日韩| 欧美国产欧美亚州国产日韩mv天天看完整| 一区二区三区在线免费播放| 久久精品国产网站| 欧洲色大大久久| 久久综合成人精品亚洲另类欧美| 一区二区三区日韩精品| 国产一区二区三区在线观看免费| 欧美在线短视频| 久久久激情视频| 日韩精品一卡二卡三卡四卡无卡| 成人一区二区三区视频 | 久久久久久夜精品精品免费| 自拍偷拍欧美精品| 国产在线一区观看| 欧美久久一二区| 国产精品传媒在线| 激情深爱一区二区| 欧美人成免费网站| 亚洲色图色小说| 国产精品1区2区3区在线观看| 666欧美在线视频| 亚洲伦理在线精品| voyeur盗摄精品| 久久网站热最新地址| 免费看精品久久片| 欧美人成免费网站| 亚洲一级电影视频| 91玉足脚交白嫩脚丫在线播放| 国产亚洲欧美日韩俺去了| 蜜臀av一区二区| 91精品欧美综合在线观看最新 | 色呦呦日韩精品| 中文字幕日本乱码精品影院| 国产综合久久久久久久久久久久| 欧美一区在线视频| 午夜精品久久久| 欧美日韩在线播放| 一区二区三区精品视频| 99国产精品国产精品毛片| 亚洲国产精品99久久久久久久久| 精品一区二区综合| 日韩精品专区在线影院重磅| 裸体一区二区三区| 日韩欧美精品在线视频| 秋霞电影一区二区| 8x8x8国产精品| 天堂蜜桃一区二区三区| 欧美二区在线观看| 免费观看日韩av| 日韩免费观看高清完整版 | 亚洲国产sm捆绑调教视频| 日本乱人伦aⅴ精品| 一区二区在线免费| 欧美中文字幕一区二区三区亚洲 | 中文字幕在线不卡国产视频| av毛片久久久久**hd| 自拍偷在线精品自拍偷无码专区| 一本一道久久a久久精品 | 日韩高清不卡在线| 欧美一级二级在线观看| 韩国精品久久久| 国产精品久久久久久久午夜片| 成人黄色免费短视频| 亚洲精品久久嫩草网站秘色| 欧美人妖巨大在线| 狠狠色丁香婷婷综合| 中文字幕av资源一区| 色婷婷综合久久久| 日产精品久久久久久久性色| 2014亚洲片线观看视频免费| 国产福利一区二区三区视频在线| 国产精品毛片大码女人| 欧美性色欧美a在线播放| 久久国产生活片100| 国产精品欧美一区喷水| 在线观看av一区| 激情偷乱视频一区二区三区| 亚洲色图视频网| 日韩美一区二区三区| jlzzjlzz亚洲日本少妇| 视频一区国产视频| 国产欧美一区二区精品性|