| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 805 人关注过本帖
标题:做文件锁时,遇到的问题,希望各位高手帮忙。
只看楼主 加入收藏
xueyuhanhai
Rank: 4
等 级:业余侠客
帖 子:90
专家分:238
注 册:2010-4-5
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:2 
做文件锁时,遇到的问题,希望各位高手帮忙。
这是文件锁的一个函数,功能是对对话框上输入的(txt)文件进行加密(即对输入的文件里面的内容加密),并将加密后的内容输出到该文件里面。
//加密函数
void Cwenjiansuo::Onjiami()
{
    // TODO: Add your control notification handler code here
    UpdateData(TRUE);//把对话框上控件中输入的文件地址,传到m_jiamilujing.GetBuffer(50),可以不用管
    //加密代码
    Init();// 初始化维吉尼亚方阵,不用管
    FILE *fp;
    fp=fopen(m_jiamilujing.GetBuffer(50),"r+");//打开待加密的文件
    if(fp==NULL)
    {
        printf("cannot open the file!\n");
        
    }

    char ch,string1[256]={'\0'}; //里面存放待加密的字符串并初始化
    ch=fgetc(fp);
    int i=1,k=0;
    do
    {
        char string2[256]={'\0'};
        int j=0;
        while((i<256)&&(!feof(fp)))//每次从文件读255个字符,
        {
            i++;
            string1[j]=ch;
            j++;
            ch=fgetc(fp);
        }
        Encode(m_jiamimiyao.GetBuffer(50), string1, string2);//加密    m_jiamimiyao.GetBuffer(50):密钥  string1:待加密的字符串 string2:经过加密后的字符串可以不用管。即此时string2里面的就是加密后的内容。
        fseek(fp,k,SEEK_SET);
        fputs(string2,fp);
        k=k+strlen(string1);
    }while(!feof(fp));//直到文件的结束
    m_jiamilujing.ReleaseBuffer();
    m_jiamimiyao.ReleaseBuffer();
    fclose(fp);
   
}

大家帮我看一下里面的逻辑有没有错,。为什么我的结果是,加密文件时,可以把很小的文件加密成几百 M 啊?期待高手。
搜索更多相关主题的帖子: 文件 
2010-05-25 11:41
韩明海
Rank: 8Rank: 8
等 级:蝙蝠侠
帖 子:253
专家分:749
注 册:2010-4-3
收藏
得分:20 
你在fgetc和 fputs中用一个fseek,但是没有在fputs 和fgetc中用fseek,我记得应该是这样,每次换的时候的要fseek一下,否则你的几百M是随机的,fp可能早就越界了
2010-05-25 15:15
xueyuhanhai
Rank: 4
等 级:业余侠客
帖 子:90
专家分:238
注 册:2010-4-5
收藏
得分:0 
回复 2楼 韩明海
这个帖子你不用回了,做好那一个帖子就可以了,两个是同一问题,你解答出的话,我两个帖子的分都给你。
2010-05-25 15:59
快速回复:做文件锁时,遇到的问题,希望各位高手帮忙。
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.056104 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved