1.c
#include "./db.h"
#include <sys/types.h>
#include <sys/stat.h>
int main(int argc, const char *argv[])
{
char eng[30] = "";
char chinese[30] = "";
FILE* fp = fopen("./1.txt","r");
if(NULL == fp)
{
perror("fopen");
return -1;
}
do_open();
do_create();
printf("初始化成功\n");
char str[100];
char* p;
while(1)
{
bzero(str,sizeof(str));
p=str;
bzero(p,100);
if(NULL == fgets(str,sizeof(str),fp))
{
break;
}
str[strlen(str)-1] = 0;
while(((*p) != ' ') || (*(p+1) != ' '))
p++;
*p = 0;
p = p+3;
do_insert(str, p);
//puts(str);
//puts(p);
}
printf("单词导入成功!!!!\n");
do_close();
return 0;
}
db.c
#include "./db.h"
struct dbinfo dbdata;
char str[20];
//初始化
int do_open(void)
{
//创建并打开数据库
dbdata.db = NULL;
strcpy(str,"./my.db");//需要打开的数据库;
if(sqlite3_open(str, &dbdata.db) != SQLITE_OK)
{
fprintf(stderr, "sqlite3_open:%s\t%d", sqlite3_errmsg(dbdata.db), __LINE__);
return -1;
}
printf("database open success!\n");
return 0;
}
//创建表
int do_create()
{
strcpy(str,"danci");//需要打开数据库中哪一张表;
//创建表
char* sql = (char*)malloc(60);
sprintf(sql,"create table if not exists %s (eng char, chinese char);",str);//表中类型格式
//printf("%s",sql);
char* errmsg = NULL;
if(sqlite3_exec(dbdata.db, sql, NULL, NULL, &errmsg))
{
fprintf(stderr, "sqlite3_exec:%s\t%d", errmsg, __LINE__);
return -1;
}
printf("create table success!\n");
free(sql);
return 0;
}
//增
int do_insert(char* eng, char* chinese)
{
//printf("%s\n", str);
//插入表
char* sql = (char*)malloc(200);
sprintf(sql,"insert into %s ('eng', 'chinese') values (\"%s\",\"%s\");", str, eng, chinese);
//printf("%s\n",sql);
char* errmsg = NULL;
if(sqlite3_exec(dbdata.db, sql, NULL, NULL, &errmsg))
{
fprintf(stderr, "sqlite3_exec:%s\t%d\n", errmsg, __LINE__);
fprintf(stderr,"%s\n",sql);
return -1;
}
//printf("create table success!\n");
free(sql);
return 0;
}
//关闭
int do_close()
{
//关闭数据库
if(sqlite3_close(dbdata.db) != SQLITE_OK)
{
fprintf(stderr, "sqlite3_close:%s\t%d", sqlite3_errmsg(dbdata.db), __LINE__);
return -1;
}
}
db.h
#ifndef __DB_H__
#define __DB_H__
#include <stdio.h>
#include <sqlite3.h>
#include <stdlib.h>
#include <string.h>
struct dbinfo
{
sqlite3* db;
};
//初始化
int do_open(void);
//创建表
int do_create(void);
//增
int do_insert(char* eng, char* chinese);
//关闭
int do_close();
#endif