#include <stdio.h>
#include <sqlite3.h>
#include <stdlib.h>
#include <string.h>
void do_insert (sqlite3* db,char word[],char explain[])
{
char sql[128]="";
sprintf(sql,"insert into dict values(\"%s\",\"%s\")",word,explain);
char* errmsg = NULL;
if(sqlite3_exec(db, sql, NULL, NULL, &errmsg) != SQLITE_OK)
{
fprintf(stderr, "__%d__ do_insert:%s\n", __LINE__, errmsg);
return ;
}
printf("do_insert success\n");
}
int main(int argc, const char *argv[])
{
sqlite3* db = NULL;
if(sqlite3_open("./dict.db", &db) != SQLITE_OK)
{
printf("err_code:%d\n", sqlite3_errcode(db));
printf("errmsg:%s\n", sqlite3_errmsg(db));
fprintf(stderr, "__%d__ sqlite3_open failed\n", __LINE__);
return -1;
}
printf("sqlite3_open success\n");
#if 0
int sqlite3_exec(
sqlite3* db,
const char *sql,
int (*callback)(void*,int,char**,char**),
void *arg,
char **errmsg
);
#endif
char* sql = "create table if not exists dict (wold char, explain char);" ;
char* errmsg = NULL;
if(sqlite3_exec(db, sql, NULL, NULL, &errmsg) != SQLITE_OK)
{
fprintf(stderr, "__%d__ sqlite3_exec:%s\n", __LINE__, errmsg);
return -1;
}
printf("create table success\n");
FILE* fd = fopen("./dict.txt","r");
if(fd == NULL)
{
perror("fopen");
return -1;
}
printf("打开字典文件成功\n");
char buf[128];
char word[128];
char explain[128];
char *res;
while(1)
{
bzero(buf,sizeof(buf));
bzero(word,sizeof(word));
bzero(explain,sizeof(explain));
res = fgets(buf,sizeof(buf),fd);
if(res == NULL)
{
printf("全部写入完毕\n");
break;
}
char *q = buf;
strcpy(word,strtok(q," "));
strcpy(explain,strtok(NULL,"\n"));
char copy[128] = "";
strcpy(copy,explain+2);
char *p = strtok(copy," ");
while(*p != '\0')
{
if(*p > 0 && *p < 127)
{
p++;
}
else
{
break;
}
}
if(*p == '\0')
{
word[strlen(word)] = ' ';
strcat(word,strtok(explain," "));
strcpy(explain,strtok(NULL,"\r"));
}
do_insert(db,word,explain);
printf("%s\n",word);
printf("%s\n",explain);
}
if(sqlite3_close(db) != SQLITE_OK)
{
printf("err_code:%d\n", sqlite3_errcode(db));
printf("errmsg:%s\n", sqlite3_errmsg(db));
fprintf(stderr, "__%d__ sqlite3_close failed\n", __LINE__);
return -1;
}
printf("sqlite3_close success\n");
return 0;
}