将单词导入数据库中
#include <myhead.h>
int main(int argc, const char *argv[])
{
//打开一个数据库
sqlite3 *db = NULL;
if(sqlite3_open("./dict.db",&db) != SQLITE_OK)
{
fprintf(stderr, "sqlite3_open :%s %d __%d__\n",\
sqlite3_errmsg(db), sqlite3_errcode(db), __LINE__);
return -1;
}
printf("sqlite3_open success\n");
char sql[128] = "create table if not exists dict (word char, mean char)";
char* errmsg = NULL;
if(sqlite3_exec(db, sql, NULL, NULL, &errmsg) != SQLITE_OK)
{
fprintf(stderr, "sqlite3_exec:%s __%d__\n", errmsg, __LINE__);
return -1;
}
printf("create table success\n");
FILE *fp;
if((fp=fopen("./dict.txt", "r")) == NULL)
{
ERR_MSG("open");
return -1;
}
char buf[128] = "";
char mean[128] = "";
char word[128] = "";
char *b=buf;
char *m=mean;
char *w=word;
while(1)
{
bzero(buf,sizeof(buf));
bzero(mean,sizeof(mean));
bzero(word,sizeof(word));
b=buf;
m=mean;
w=word;
if(fgets(buf, sizeof(buf), fp) == NULL)
{
break;
}
buf[strlen(buf)-1]='\0';
//获取英文单词
while(*b != ' ' || (*(b+1) != ' '))
{
*(w++) = *(b++);
}
b+=3;
//获取中文释义
while(*b != 0)
{
*(m++)=*(b++);
}
bzero(sql,sizeof(sql));
//插入数据库
sprintf(sql, " INSERT INTO dict VALUES (\"%s\",\"%s\")", word, mean);
if(sqlite3_exec(db, sql, NULL, NULL, &errmsg) != SQLITE_OK)
{
printf("%s,%s\n",word,mean);
fprintf(stderr, "sqlite3_exec :%s __%d__\n",\
sqlite3_errmsg(db), __LINE__);
return -1;
}
}
printf("录入成功\n");
fclose(fp);
return 0;
}