精华 | |
金钱 | BA |
威望 | 点 |
贡献值 | 点 |
爱心 | 点 |
经验 | 点 |
注册时间 | 2009-10-28 |
最后登录 | 1970-1-1 |
在线时间 | 小时 |
| |
| |
| |
|
楼主 |
发表于 2009-11-27 00:59
|
显示全部楼层
源码。。。c语言的,其实是很简单,只是我比较菜#include <sys/types.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "db.h"//berkeleydb定义的
#define datafil "main.db"
int main()
{
DB *dbp_1;
DB *dbp_2;
DBT key_1, data,key_2;
int ret,t_ret;
//数据库文件里面有若干数据库,下面是打开短信数据库dbg_4_ems_table_in_flash并提取有用信息,具体想知道的咱们详聊
db_create(&dbp_1, NULL, 0);
dbp_1->open(dbp_1,NULL,datafil,"dbg_4_ems_table_in_flash", DB_BTREE, DB_CREATE, 0664);
memset(&key_1, 0, sizeof(key_1));
memset(&data, 0, sizeof(data));
key_1.data = "\03\00\00";//berkeleydb是key,data结构的,这个是key的值,要想实现自动搜索天气短信这个地方要改,我是为了严重弄了个定值
key_1.size = sizeof("\03\00\00");
data.doff =183; //这个是读取有用信息的位置,我可能数的有点错误所以导致做出来的显示乱码,严谨起来这里应该也改成个循环
data.dlen =16;
data.flags=DB_DBT_PARTIAL;
if ((ret = dbp_1->get(dbp_1, NULL, &key_1, &data, 0)) == 0)
printf(
"db: %s: key retrieved: data was %s.\n",
(char *)key_1.data, (char *)data.data
);
else
dbp_1->err(dbp_1, ret, "db->get");//这个后面可以添个函数返回天气情况以后给qt窗口程序用
//下面是向日程数据库里面存入天气信息
db_create(&dbp_2, NULL, 0);
dbp_2->open(dbp_2,NULL,datafil,"cal_table_event", DB_BTREE, DB_CREATE, 0664);
key_2.data = "\04\00\00"; //也是个定值要该的地方
key_2.size = sizeof("\04\00\00");
data.flags=DB_DBT_PARTIAL;
data.size = 16;
data.doff =141;
data.dlen =16;
if ((ret = dbp_2->put(dbp_2, NULL, &key_2, &data, 0)) == 0)
printf("db: %s: key stored.\n", (char *)key_2.data);
else
dbp_2->err(dbp_2, ret, "db->put");
//关闭这两个数据库数据位置被该了。我们就打工告成了
if ((t_ret = dbp_1->close(dbp_1, 0)) != 0 && ret == 0)
ret = t_ret;
//exit(ret);
if ((t_ret = dbp_2->close(dbp_2, 0)) != 0 && ret == 0)
ret = t_ret;
exit(ret);
} 我还有要说的就是berkeleydb要用到他自己带的库函数,可以去berkeleydb官方网站下载然后自己用,交叉编译器编译。
我现在只编译了pc的
v8的还没有弄
我想修改好源文件+编译好库这个程序能在v8上运行,以后还可以修改,
比如
把“中国移动”改为天气预报什么的都行应该,有兴趣的同学咱们一起做出来吧 |
|