将dict.txt导入到数据库中
单词一列,意思一列
#include<stdio.h>
#include <sqlite3.h>
#include <string.h>
#include <stdlib.h>
#define ERR_MSG(msg) do{\
fprintf(stderr, "line:__%d__ ", __LINE__);\
perror(msg);\
}while(0)
int do_insert(sqlite3* db,char *Eng,char* Mean);
int main(int argc, const char *argv[])
{
system("rm dict.db");
FILE *fp = fopen("dict.txt","r");
if(fp == NULL)
{
ERR_MSG("open");
return -1;
}
sqlite3* db;
if(sqlite3_open("./dict.db",&db) != SQLITE_OK)
{
fprintf(stderr,"line : %d sqlite3_open failed:%d:%s\n",\
__LINE__,sqlite3_errcode(db),sqlite3_errmsg(db));
return -1;
}
printf("sqlite3_open success\n");
char sql[128] = "create table if not exists dict (Eng char,Chi char);";
char* errmsg = NULL;
if(sqlite3_exec(db,sql,NULL,NULL,&errmsg) != SQLITE_OK)
{
fprintf(stderr,"[line : %d] : sqlite3_exec failed : %s\n",__LINE__,errmsg);
return -1;
}
char buf[256] = "";
char Eng[128] = "";
char Mean[128] = "";
int res = 0;
int j = 0;
while(fgets(buf,sizeof(buf),fp) != NULL)
{
buf[strlen(buf)-1] = 0;
for(int i=0;buf[i+2] != '\0';i++)
{
if(buf[i] != ' ' && buf[i+1] == ' ' && buf[i+2] == ' ')
{
strncpy(Eng,buf,i+1);
}
else if(buf[i] == ' ' && buf[i+1] == ' ' && buf[i+2] != ' ')
{
strcpy(Mean,buf+i+2);
break;
}
}
printf("[%d] Eng = %s , Mean = %s\n",j++,Eng,Mean);
do_insert(db,Eng,Mean);
bzero(buf,sizeof(buf));
bzero(Eng,sizeof(Eng));
bzero(Mean,sizeof(Mean));
}
return 0;
}
int do_insert(sqlite3* db,char *Eng,char* Mean)
{
char sql[128] = "";
char* errmsg = NULL;
sprintf(sql,"insert into dict values (\"%s\",\"%s\");",Eng,Mean);
if(sqlite3_exec(db,sql,NULL,NULL,&errmsg) != SQLITE_OK)
{
fprintf(stderr,"[line : %d] : sqlite3_exec failed : %s\n",__LINE__,errmsg);
return -1;
}
printf("添加成功\n");
return 0;
}