📄 00000010.htm
字号:
<HTML><HEAD> <TITLE>BBS水木清华站∶精华区</TITLE></HEAD><BODY><CENTER><H1>BBS水木清华站∶精华区</H1></CENTER>发信人: Leeward (X 14% completed), 信区: Linux <BR>标 题: FireBirdBBS 版面数据 HTML 化并打包成 tgz <BR>发信站: BBS 水木清华站 (Sun Jun 14 18:06:38 1998) <BR> <BR>补充说明:使用方式:Bhtml [-a作者] [-t标题] [-d天数] [-s起始编号] [-e终止编号] <BR> 运行时,先进入该版的目录内,然后可指定提取同作者,同主题,最近几天, <BR> 以及起止范围。 <BR> 如果不指定这些参数,缺省是提取版上的前 20480 篇文章。 <BR> 运行成功时,生成的 tgz 文件位于该版目录内。 <BR> <BR>/* Making articles in a board into HTML format and then compress them. */ <BR>/* */ <BR>/* Leeward 1998.01.05 */ <BR>/* */ <BR>/* This little program scans a board's directory for its articles */ <BR>/* and converts all of them into HTML format new files */ <BR>/* and finally compress the new into a UNIX tgz format package. */ <BR>/* */ <BR>/* Also this program duplicates all source files and renames all of them */ <BR>/* into digital MS-DOS 8.3 format file names (avoiding easily re-produce). */ <BR>/* */ <BR>/* Build: */ <BR>/* make Bhtml */ <BR>/* Syntax: */ <BR>/* Bhtml [-aAuthor] [-tTitle] [-dDay] [-sStart] [-eEnd] */ <BR>/* */ <BR>/* Known shortcomings: do not check if disk space is enough */ <BR>/* */ <BR> <BR> <BR>#include <stdio.h> <BR>#include <string.h> <BR>#include <time.h> <BR>#include <sys/time.h> <BR>#include <sys/stat.h> <BR> <BR> <BR>#define MAXSTRLEN 8192 <BR>#define STRLEN 80 <BR> <BR>#define DOTDIR ".DIR" <BR>#define ROOTHTML "index.htm" <BR>#define INDEXHTML "AIXindex.htm" <BR>#define FRAMENAME "SMTHBAIX" <BR> <BR>#define HEADER "BBS水木清华站∶讨论区" <BR>#define FOOTER "BBS水木清华站∶讨论区" <BR> <BR> <BR>struct fileheader { /* This structure is used to hold data in */ <BR> char filename[STRLEN]; /* the DIR files */ <BR> char owner[STRLEN]; <BR> char title[STRLEN]; <BR> unsigned level; <BR> unsigned char accessed[12]; /* struct size = 256 bytes */ <BR>} ; <BR>typedef struct fileheader fileheader; <BR> <BR> <BR>int <BR>main(int argc, char **argv) <BR>{ <BR> FILE *fpDOTDIR, *fpIn, *fpOut, *fpIndex; <BR> char szBuf[MAXSTRLEN], szBufX[MAXSTRLEN], *ptr, szBoard[48], szAuthor[48] = "", szTitle[128] = ""; <BR> int nArticle, i, j, k, nStart = 0, nEnd = 20480, nDay = -1, nTotal = 0; <BR> fileheader FH; <BR> <BR> <BR> printf("This application creates compressed HTML package for BBS.\n"); <BR> <BR> <BR> printf("Initializing...\n"); <BR> for (i = 1; i < argc; i ++) <BR> { <BR> if (!strncasecmp(argv[i], "-d", 2)) <BR> { <BR> sscanf(argv[i], "-d%d", &nDay); <BR> } <BR> else if (!strncasecmp(argv[i], "-s", 2)) <BR> { <BR> sscanf(argv[i], "-s%d", &nStart); <BR> } <BR> else if (!strncasecmp(argv[i], "-e", 2)) <BR> { <BR> sscanf(argv[i], "-e%d", &nEnd); <BR> } <BR> else if (!strncasecmp(argv[i], "-a", 2)) <BR> { <BR> sscanf(argv[i], "-a%24s", szAuthor); <BR> } <BR> else if (!strncasecmp(argv[i], "-t", 2)) <BR> { <BR> sscanf(argv[i], "-t%96s", szTitle); <BR> } <BR> else <BR> { <BR> printf("Syntax: Bhtml [-aAuthor] [-tTitle] [-dDay] [-sStart] [-eEnd]\n"); <BR> exit(1998); <BR> } <BR> } <BR> <BR> if (nDay < 0) <BR> nDay = - 1; <BR> if (nStart < 0) <BR> nStart = 0; <BR> if (nEnd < nStart) <BR> nEnd = nStart; <BR> <BR> printf("Executing: %s -a%s -t%s -d%d -s%d -e%d...\n", argv[0], szAuthor, szTitle, nDay, nStart, nEnd); <BR> <BR> <BR> getcwd(szBuf, MAXSTRLEN); <BR> ptr = strrchr(szBuf, '/'); <BR> if (NULL == ptr) <BR> { <BR> printf("Directory error?\n"); <BR> exit(-1); <BR> } <BR> else <BR> strcpy(szBoard, ptr + 1); <BR> <BR> <BR> sprintf(szBuf, "rm -fr %s.AIX", szBoard); <BR> system(szBuf); <BR> sprintf(szBuf, "%s.AIX", szBoard); <BR> if (0 == chdir(szBuf)) <BR> { <BR> printf("Can not erase %s\n", szBuf); <BR> exit(-3); <BR> } <BR> <BR> if (mkdir(szBuf, 0000755)) /* drwxr-xr-x */ <BR> { <BR> printf("Can not create %s\n", szBuf); <BR> exit(-2); <BR>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -