怎么将文本文件导入数据库

怎么将文本文件导入数据库
本文以单词文件为例说明导入数据库的具体过程,如
在这里插入图片描述

步骤:

第一步:先将该文件中单词与解释的分割符换成 “|”,并去掉它们之间的所有空格。

#include <stdio.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <string.h>
 
int main(int argc, char const *argv[])
{
    char buf[512] = {};
    int asc;
    //创建或打开文件
    FILE *fp1 = fopen("dict.txt", "r+");
    FILE *fp2 = fopen("dictfuben.txt", "w");
 
    while (1)
    {
    	//主要拷贝单词,和处理单词和解释之间的分界
        while (1)
        {
          //挨个字符读取单词文件中的字符
            asc = fgetc(fp1);
            //判断是否是空格
            //是空格
            if (asc == ' ')
            {
            	//将文件指针移到在空格前面,单词的后面
                fseek(fp1, -1, SEEK_CUR);
                fputc('|', fp2);    //写入分隔符
                //让文件指针向后移动,直到所有移动到,单词与解释之间所有空格 的后面
                while (1)
                {
                    asc = fgetc(fp1);
                    if (asc != ' ')
                        break;    //删去多余空格
                }
                break;
            }
            //结束符
            else if (asc == EOF)
                break;
            //其他字符则将该字符拷贝到123.txt文件中,这里拷贝的是单词
            fputc(asc, fp2);
        }
 
        fseek(fp1, -1, SEEK_CUR);    //此处需要向前移动一个位置,否则会吞掉一个字符
 
 		//将解释拷贝到123.txt文件中
        while (1)
        {
            fgets(buf, sizeof(buf), fp1);
            fputs(buf, fp2);
            if (buf[strlen(buf) - 1] == '\n')
                break;
        }
        //如果读到文件结束符,退出
        if (asc == EOF)
            break;
    }
    fclose(fp1);
    fclose(fp2);
 
    remove("dict.txt");            //删除原文件
    rename("dictfuben.txt", "dict.txt"); //将临时文件名改为原文件名
 
    return 0;
}

处理之后,单词的文本文件
在这里插入图片描述

第二步:将文件中所有的双引号( “”)替换成单引号( ‘’),来保证正确插入到数据库表中

使用vi编辑器的底行模式的字符串替换指令来实现。

1)使用vi编辑器打开单词的.txt文件

在这里插入图片描述

2)查找单词文件中的双引号(”“) ,来查看是否存在双引号(”“)存在的话则用vi编辑器中字符串替换命令替换

查找:

:/"

在这里插入图片描述

3)替换命令

利用vi编辑器中的字符串替换命令,将单词文件中的双引号(”“)替换成单引号(‘’),来保证正常插入

%s/"/'/g

在这里插入图片描述

4)保存并退出

:wq

在这里插入图片描述

第三步。在命令行中,创建该数据库,并创建一个空的单词表

1)创建数据库

sqlite3 数据库名.db

sqlite3 dictc.db

在这里插入图片描述

2)创建空的单词表

create table 表名(表列名 列数据项的数据类型);

sqlite> create table dict(word char,explain char);

在这里插入图片描述

第四步:设置数据库表中的各个列以竖杠(|),分割

sqlite> .separator "|"

在这里插入图片描述

第五步:查看是否设置成功

sqlite> .show

在这里插入图片描述

出现这种情况,表示设置成功

第六步:将单词文本中的内容导入到我们指定的数据库对应的表中

.import 待导入文本文件名 数据库表名

sqlite> .import dict.txt dict

导入前,数据库该单词表为空
在这里插入图片描述
导入后,数据库该单词表中的内容以被文本文件内容填充
在这里插入图片描述
导入成功

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值