一、将dict.txt导入单词表中
#include <stdio.h>
#include <string.h>
#include <sqlite3.h>
int main(int argc, const char *argv[])
{
sqlite3 *db = NULL;
if(sqlite3_open("./word.db", &db) != SQLITE_OK)
{
printf("%d: %s __%d__\n", sqlite3_errcode(db), sqlite3_errmsg(db), __LINE__);
return -1;
}
printf("sqlite3 open success\n");
char sql[512] = "";
char *errmsg = NULL;
sprintf(sql, "create table if not exists dict (id int primary key, word char, meaning char)");
if(sqlite3_exec(db, sql, NULL, NULL, &errmsg) != SQLITE_OK)
{
printf("sqlite3_exec:%s __%d__\n", errmsg, __LINE__);
return -1;
}
FILE *fp = fopen("./dict.txt", "r");
if(fp == NULL)
{
perror("fopen");
return -1;
}
printf("open file success\n");
char word[128] = "";
char meaning[128] = "";
char buf[256] = "";
int id = 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(word, buf, i+1);
if(buf[i]==' ' && buf[i+1]==' ' && buf[i+2]!=' ')
{
strcpy(meaning, buf+i+2);
break;
}
}
//printf("%s %s\n", word, meaning);
bzero(sql, sizeof(sql));
sprintf(sql, "insert into dict values (%d, \"%s\", \"%s\")", id++, word, meaning);
if(sqlite3_exec(db, sql, NULL, NULL, &errmsg) != SQLITE_OK)
{
printf("sqlite3_exec:%s __%d__\n", errmsg, __LINE__);
return -1;
}
bzero(word, sizeof(word));
bzero(meaning, sizeof(meaning));
bzero(buf, sizeof(buf));
}
if(sqlite3_close(db) != SQLITE_OK)
{
printf("%d: %s __%d__\n", sqlite3_errcode(db), sqlite3_errmsg(db), __LINE__);
return -1;
}
return 0;
}