| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 4212 人关注过本帖
标题:【平安夜散分】武偉進
只看楼主 加入收藏
不懂才问
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:大草原
等 级:贵宾
威 望:29
帖 子:1503
专家分:6593
注 册:2010-7-5
收藏
得分:9 
接分

报告老师,我低头不是因为我在装低调,是你问的问题,我真的不会答,,,
2015-12-25 08:07
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
以下是引用hellovfp在2015-12-25 01:11:39的发言:

码了多少行代码了?如果用户写了写数据进去,要删除,添加些字段肿么办?还有用户一不小心修改到表头数据?


1.就現在看到那麽多行代碼
2.表頭寫爲明文祇是方便看而已,確實難以阻攔用戶更改結構,事實上就算像DBF文檔那樣寫成二進制格式,也無法阻擋,有心總能改得到
3.頂多做到儘量的容錯。

下面是修改了一些bug之後的結果,容許一些空行、一些空格。
程序代码:
bool Load_Header(FILE* file, Header* header)
{
    char buffer[1024];
    bool success = true;

    bool inHeader = false;
    while (success && !ferror(file) && !feof(file) && fgets(buffer, _countof(buffer), file))
    {
        if (*Str_Trim(buffer) == '\n')
        {
            continue;
        }
        if (!inHeader)
        {
            _strupr_s(buffer, _countof(buffer));
            if (strcmp(buffer, "[HEADER]\n") == 0)
            {
                inHeader = true;
                continue;
            }
        }
        if (inHeader)
        {
            sscanf_s(buffer, "Fields Number: %u", &header->Field_Number);
            header->Fields = (Field*)calloc(header->Field_Number, sizeof(Field));
            if (header->Fields)
            {
                size_t index = 0;
                while ((index < header->Field_Number) && fgets(buffer, _countof(buffer), file))
                {
                    if (*Str_Trim(buffer) != '\n')
                    {
                        Get_String(buffer, header->Fields[index].Name, sizeof(header->Fields[index].Name), '\"');
                        const char* p = strchr(buffer, '=');
                        if (p)
                        {
                            sscanf_s(p + 1, " %1c", &header->Fields[index].Type, 1);
                        }
                        else
                        {
                            header->Fields[index].Type = 'U';
                        }
                        p = strchr(buffer, '[');
                        if (!p || (sscanf_s(p, "[%d,%d]", &header->Fields[index].Length, &header->Fields[index].Decimal) != 2))
                        {
                            success = false;
                            break;
                        }
                        ++index;
                    }
                }
            }
            break;
        }
    }

    return success;
}


图片附件: 游客没有浏览图片的权限,请 登录注册


[此贴子已经被作者于2015-12-25 09:27编辑过]


授人以渔,不授人以鱼。
2015-12-25 09:26
佳L
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:19
帖 子:1404
专家分:3485
注 册:2011-12-11
收藏
得分:9 

Dreams  will   come  true  ,if   you    hold   on  !
2015-12-25 10:54
hellovfp
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:禁止访问
威 望:30
帖 子:2976
专家分:7697
注 册:2009-7-21
收藏
得分:0 
回复 12楼 TonyDeng
表头数据做成xml格式如何?呵.呵,
其实这几天俺又查了一下目前数据库使用情况,
大致甲古文,MySql,MSSQL在世界排名前三,access数据库也在排名前面。
不过前二个都有闭源商业化的趋势,微软的使终有版权问题。连vs express版1个月都要过期,我去。

想弄个网络游戏数据做存储,靠这些商业数据库还真的不靠谱,
非要自己开弄数据库永久无版权之争?老T有什么想法没有?有相关书籍资料木有?


我们都在路上。。。。。
2015-12-25 11:06
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
xml的读写器在.net中才有,自己写不现实。小型的数据管理,自己写就可以了,用不着数据库。

[此贴子已经被作者于2015-12-25 11:42编辑过]


授人以渔,不授人以鱼。
2015-12-25 11:41
hellovfp
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:禁止访问
威 望:30
帖 子:2976
专家分:7697
注 册:2009-7-21
收藏
得分:0 
回复 15楼 TonyDeng
汗,XML什么.net才有哦,直接调用com接口就完了。其它XML解析库也有很多。
其实你这个构思,倒是真的给俺一些想法,字段内容搜索用文件指针挺方便的。
如果自己用做网络数据库,也不需要太麻烦的速度需求,可以满足需求,又避免了版权问题。

就等你码好了,怎么样?哈哈

我们都在路上。。。。。
2015-12-25 12:45
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
不用第三方解析库

授人以渔,不授人以鱼。
2015-12-25 12:49
谁与争疯
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:海南省
等 级:版主
威 望:191
帖 子:15071
专家分:17513
注 册:2007-4-22
收藏
得分:9 
太长不看。

论坛是我家灌水靠大家
2015-12-25 12:58
hellovfp
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:禁止访问
威 望:30
帖 子:2976
专家分:7697
注 册:2009-7-21
收藏
得分:0 
赶紧继续码代码,呵.呵。。。估计武同学看到你的代码要死了一半,要简单易懂,易懂哈!
做好了,俺帮你拿cppcheck检查一下可能潜在的问题。

[此贴子已经被作者于2015-12-25 13:08编辑过]


我们都在路上。。。。。
2015-12-25 13:00
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
很難看嗎?

授人以渔,不授人以鱼。
2015-12-25 13:42
快速回复:【平安夜散分】武偉進
数据加载中...
 
   



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

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