荔园在线

荔园之美,在春之萌芽,在夏之绽放,在秋之收获,在冬之沉淀

[回到开始] [上一篇][下一篇]


发信人: jjk (Welcome to InstallBBS,Linux!), 信区: InstallBBS
标  题: [转载] Re: 谁有十大按 id 数统计的源码,贴出来的说(转寄)
发信站: 荔园晨风BBS站 (Wed Dec 19 23:15:24 2001), 转信

【 以下文字转载自 jjk 的信箱 】
【 原文由 jjksam@smth.org 所发表 】
发信人: HbBdByXc.bbs@bbs.dqpi.edu.cn (奋斗无止境·爱拼才会赢), 信区: BBSMan_Dev
标  题: Re: 谁有十大按 id 数统计的源码,贴出来的说
发信站: PolarisBBS (Sun Dec 16 10:07:29 2001)
转信站: SMTH!thunews.dhs.org!zixia.net!PolarisBBS

发信人: zhch (zhch), 信区: BBSDev
标  题: 十大改成按人数统计的一种实现方法
发信站: 南京大学小百合站 (Wed Nov 29 16:45:02 2000), 转信

十大按人数统计显然比按篇数统计科学得多, 但会增大一些额外的负荷.

下面给出一种实现方法, 折衷考虑负荷和统计的准确性, 原理也是用一
个文件记录一个id的最近发文情况, 若没找到与当前发文标题相同的才
写入.post文件. 代码如下:

bbs代码中要修改2个地方.
一是edit.c的write_posts()函数中, append_record()前加一句

if(if_exist_title(ptr)) return;

二是在bbs的src的合适的地方加入下面函数:

int if_exist_title(char *title) {
        static struct {
                int hash_ip;
                char title[64][60];
        } my_posts;
        char buf1[256];
        int n;
        FILE *fp;
        sethomefile(buf1, currentuser.userid, "my_posts");
        fp=fopen(buf1, "r+");
        if(fp==NULL) fp=fopen(buf1, "w+");
        fread(&my_posts, sizeof(my_posts), 1, fp);
        for(n=0; n<64; n++)
                if(!strncmp(my_posts.title[n], title, 50)) {
                        fclose(fp);
                        return 1;
                };
        my_posts.hash_ip = (my_posts.hash_ip+1) & 63;
        strncpy(my_posts.title[my_posts.hash_ip], title, 50);
        fseek(fp, 0, SEEK_SET);
        fwrite(&my_posts, sizeof(my_posts), 1, fp);
        fclose(fp);
        return 0;
}

这样就可以了.

其他说明:

增加负荷情况: 每个id多占4K硬盘, 发文时多一个文件操作. 负荷不算大, 基本可以忽略.
未加入版面的判断, 同一id不同版面发表相同标题的文章也不算新文章. 如果觉得这样
不好, 可以很容易自行把对同版面的判断也加上.

另外这样改好后, 可以把poststat.c中的'篇'改成'人', 更准确一点.
--

zhch.bbs@bbs.nju.edu.cn

※ 来源:.南京大学小百合站 bbs.nju.edu.cn.[FROM: dsl.nju.edu.cn]

你的www也要改一下
【 在 chy.bbs@bbs.ysu.edu.cn (pillar) 的大作中提到: 】
: rt


--
http://bbs.dqpi.edu.cn/~jieer/images/zhanbiao3.gif
※ 来源:·北极星BBS站 bbs.dqpi.edu.cn·[FROM: 210.46.137.178]
--
※ 转载:·荔园晨风BBS站 bbs.szu.edu.cn·[FROM: 192.168.0.146]


[回到开始] [上一篇][下一篇]

荔园在线首页 友情链接:深圳大学 深大招生 荔园晨风BBS S-Term软件 网络书店