将电子词典导入到数据库中
#include <stdio.h>
#include <sqlite3.h>
#include <string.h>
int main(int argc, const char *argv[])
{
sqlite3 *db=NULL;
if(sqlite3_open("./wang.db",&db)!=SQLITE_OK)
{
printf("%d--%s\n",__LINE__,sqlite3_errmsg(db));
return -1;
}
printf("数据库成功打开\n");
char sql[128]="create table if not exists dict (word char,meaning char);";
char *msg=NULL;
if(sqlite3_exec(db,sql,NULL,NULL,&msg)!=SQLITE_OK)
{
printf("%d--%s\n",__LINE__,msg);
return -1;
}
printf("dict表创建成功\n");
//打开电子词典写入到数据库中
FILE *fp=fopen("../sqlite3/dict.txt","r");
if(fp==NULL)
{
printf("%d--",__LINE__);
perror("fopen");
return -1;
}
char buf[128]="";
char word[20]="";
char meaning[100]="";
while(1)
{
bzero(buf,sizeof(buf));
bzero(word,sizeof(word));
if(fgets(buf,sizeof(buf),fp)==NULL)
{
break;
}
buf[strlen(buf)-1]=0;
char *p=buf;
int count=0;
int i=0;
while(*p)
{
word[i]=*p;
if(*p==' ')
{
count++;
}
if(count==2)
{
strcpy(meaning,p);
break;
}
p++;
i++;
}
bzero(sql,sizeof(sql));
sprintf(sql,"insert into dict values (\"%s\",\"%s\");",word,meaning);
if(sqlite3_exec(db,sql,NULL,NULL,&msg)!=SQLITE_OK)
{
printf("%d--%s\n",__LINE__,msg);
return -1;
}
}
printf("电子词典导入完成\n");
fclose(fp);
return 0;
}