当前位置:首页 > 问答 > 正文

易语言怎么从txt文件里取一行数据当数据库用,简单方法分享

(根据网络上易语言爱好者们在贴吧、论坛等地的常见讨论和代码分享整理)

易语言想从一个TXT文件里拿出一行数据来当简单的数据库用,这个想法特别实在,尤其是刚开始学编程或者就想快速弄个小工具的时候,你别看那些专业的数据库软件那么复杂,其实对付一些简单的数据,比如几十个几百个联系人的电话、一些软件的配置信息、或者每天记录一点流水账,用一个TXT文本文件完全能搞定,方法一点都不难,我给你说个最直接、最接地气的。

你得知道你的TXT文件长啥样,既然是当数据库用,那肯定不能乱七八糟地写,最简单也最常用的格式就是,一行就是一条完整的记录,比如说,你要存用户信息,那每一行就放一个用户的信息,然后用户的名字、电话、地址这些不同的内容,用一个固定的符号隔开,比如用逗号“,”,或者用竖线“|”,甚至用几个减号“---”都行,这个叫“分隔符”,你自己定,只要别跟你数据里会出现的字符搞混了就行,举个例子,你的data.txt文件里面可以这样写:

张三,13800138000,北京市朝阳区 李四,13900139000,上海市浦东新区 王五,13700137000,广州市天河区

这样,每一行就是一条完整的用户记录,你看,是不是很像一个表格?每一行就是一行数据,每个逗号隔开的就是一个字段。

易语言怎么从txt文件里取一行数据当数据库用,简单方法分享

就是在易语言里怎么操作了,你需要用到的核心命令都在易语言的“文件读写”和“文本操作”这两个分类里,别怕,就几个命令。

第一步,把整个TXT文件读到易语言里来,你不能直接去文件里挑一行,得先全部拿过来,用一个变量,比如叫“文件内容”,把它定义成“文本型”,然后用读入文件()这个命令,代码写起来大概是这样:= 到文本(读入文件(“C:\data.txt”))` 这句命令的意思就是,把“C盘下的data.txt”这个文件整个读进来,转换成文本,放进“文件内容”这个变量里,整个文件的所有文字,包括换行符,都在这个变量里面了。

第二步,把这一大段文本拆分成一行一行的,因为文件里是靠换行来区分每条记录的,所以我们要按换行符来分割,易语言里有个超级好用的命令叫分割文本(),你需要再定义一个变量来存放分割后的结果,这个变量类型要选“文本型”的数组,代码这样写: 行数组 = 分割文本(文件内容, #换行符, ) 这句命令的意思是,把“文件内容”这个变量,按照“换行符”这个标志,切割成好多小块,每一小块就是一行文本,然后把这些小块按顺序放进“行数组”里,注意啊,这个#换行符是易语言自带的常量,代表回车换行,直接用就行,非常方便,执行完这步,“行数组”就变成了这样:行数组[1]里面是“张三,13800138000,北京市朝阳区”,行数组[2]里面是“李四,13900139000,上海市浦东新区”,以此类推。

易语言怎么从txt文件里取一行数据当数据库用,简单方法分享

第三步,从数组里取你想要的那一行,这步最简单了,因为数组有下标啊,比如你想取第一行数据,那就是: 单行数据 = 行数组 [1] 你想取第三行,就是行数组 [3],这样,“单行数据”这个变量里存放的就是一行完整的文本了。

第四步,如果你需要,再把这一行数据拆开,现在你拿到的“单行数据”还是“张三,13800138000,北京市朝阳区”这样一长串,如果你想单独把名字、电话拿出来用,那就还得再分割一次,这次是按你之前定的分隔符,比如逗号,再来一次分割文本: 字段数组 = 分割文本(单行数据, “,”, ) 分割完之后,字段数组[1]张三”,字段数组[2]13800138000”,字段数组[3]北京市朝阳区”,想用哪个就拿哪个。

你看,整个过程就像剥洋葱,或者像拿一个档案袋(TXT文件),先把里面所有文件倒出来(读入文件),然后把一摞文件按钉书针分开成一张张(按换行符分割),拿到你需要的那一张(取数组下标),最后再把这张纸上的信息栏剪开(按逗号分割),核心就是读入文件分割文本这两个命令的灵活运用。

当然了,这只是“读”和“取”的方法,你要是想增加一条新数据怎么办?很简单,就是用写到文件()或者打开文件()插入文本行()这些命令,用“追加”的方式,在那个TXT文件的最后面添加上新的一行就行了,想修改或删除某一行,稍微麻烦一点,常见的做法是把整个“行数组”读进来,在易语言里修改数组的内容,比如把行数组[2]的内容改掉,或者把行数组[3]清空,然后再用写到文件()命令,把整个数组用#换行符再连接起来,重新写回到TXT文件里去,覆盖掉旧文件。

这种方法特别适合数据量不大、不需要复杂查询和同时多人操作的情况,它的好处是文件简单,用记事本就能看,备份也方便,直接复制一份txt就行,对于易语言新手来说,通过这个练习,能把文件读写、文本处理、数组这些基本概念玩得很熟,以后再学别的也更轻松。