VB中如何实现同时删除随机文件中的多个记录? 20
我做了一个列表框,列表框中显示我随机文件中存在的数据记录,我想用单击右键快捷快捷菜单的方式实现一下删除多个选中的列表框中的选项,同时就一并将列表框选项所对应的随机文件中的...
我做了一个列表框,列表框中显示我随机文件中存在的数据记录,我想用单击右键快捷快捷菜单的方式实现一下删除多个选中的列表框中的选项,同时就一并将列表框选项所对应的随机文件中的记录也删除掉,但是我出现了一个问题,就是当我把列表框中的选项删除时,我的随机文件中对应的数据并没有删除,而是被空格所取代了,请问这是怎么回事,我的代码错在什么地方?下面是我在删除这一块的代码。
展开
4个回答
展开全部
我想请问,修改之前,你列表框的行是否与你实际文件里的记录条数,一 一对应的?
如果列表框行与文件记录一一对应;
算法中的各个步骤要修改成这样
打开:学生信息表 #2
打开:学生信息表副本 #3
Writenum = 0
for i=0 to List1.ListCount - 1 '列表框项目是从0开始计数的
If List1.Select(i) = True Then
删除列表框行 i
else
'读取文件#2 的 第 i+1 条记录 到 Module4.person
Get #2, i+1 , Module4.person
Writenum = Writenum + 1
'写记录 Module4.person 到文件#3的第Writenum条记录位置
Put #3, Writenum, Module4.person
end if
next i
Close #2
Close #3
删除文件 学生信息表.dat
文件 学生信息表副本.dat 改名 为 学生信息表.dat
如果列表框行与文件记录一一对应;
算法中的各个步骤要修改成这样
打开:学生信息表 #2
打开:学生信息表副本 #3
Writenum = 0
for i=0 to List1.ListCount - 1 '列表框项目是从0开始计数的
If List1.Select(i) = True Then
删除列表框行 i
else
'读取文件#2 的 第 i+1 条记录 到 Module4.person
Get #2, i+1 , Module4.person
Writenum = Writenum + 1
'写记录 Module4.person 到文件#3的第Writenum条记录位置
Put #3, Writenum, Module4.person
end if
next i
Close #2
Close #3
删除文件 学生信息表.dat
文件 学生信息表副本.dat 改名 为 学生信息表.dat
展开全部
一个方法,既然文件内容都被读取至列表框控件了,那就不要再管文件了,添加修改删除操作后面都加一个清空原文件后将列表框控件现有内容保存至文件的过程。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
文本文件只是在程序读取到回车键然后在屏幕换行输出实际上是连续的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2018-06-10 · 知道合伙人互联网行家
关注
展开全部
随机文件是不存在“行”的概念的,它是按数据块来存取文件的,每个数据块的长度(假定为t)相等,这样当它要取第n个数据块时,只要把文件指针移到t*(n-1)处即可,也就是说它可以随意读写任何一个数据块,这也就是“随机”两字的由来。
顺序文件则按字节来读取文件,也可以延伸为按行读取(Line Input)。由于每行的字数是不固定的,所以它不能随意把指针跳到某行,必须按顺序从文件开头一行一行读取,直到指定的某行,这也是“顺序”的由来。
所以要想删除顺序文件中的某行,就必须先把这一行前面的所有行读出来,再把这一行后面的所有行读出来,两部分合并,保存到新的文件中,然后关闭当前文件,删除当前文件,把新文件改名为当前文件名。看起来有点复杂吧?其实这也是顺序文件本身的弊端。
顺序文件则按字节来读取文件,也可以延伸为按行读取(Line Input)。由于每行的字数是不固定的,所以它不能随意把指针跳到某行,必须按顺序从文件开头一行一行读取,直到指定的某行,这也是“顺序”的由来。
所以要想删除顺序文件中的某行,就必须先把这一行前面的所有行读出来,再把这一行后面的所有行读出来,两部分合并,保存到新的文件中,然后关闭当前文件,删除当前文件,把新文件改名为当前文件名。看起来有点复杂吧?其实这也是顺序文件本身的弊端。
追问
那随机文件应该如何同时删除掉多行记录呢?我主要想知道删除“多条”记录是怎么办的,就比如说像删除短信一样,我先把要删除的短信都先选中,然后点一下删除就都删除了,这个是怎么实现的?还有我是怎么错的呢?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询