注册 登录
编程论坛 VB6论坛

同时开多档案问题

wube 发布于 2018-10-15 17:59, 1504 次点击
先说这个Case跟我在C版问的是不同的,VB的是要读两个档案合成一个,
C的是要读多个档案合成多个,内容比较复杂
VB6这个已经做完了,只是想如果可以同时开,
我想可以让代码量再更少一点

Open FN1 for input as #1
Open FN2 for input as #2
Do While not EOF(1) && Do While not EOF(2)    '这行能跟C一样这样写吗?还是有其他写法?

Line Input #1,A
Line Input #2,B

Loop
Loop
Close #2
Close #1

然后档案有长短之分时,有哪个要写在里面或外面的问题吗?
4 回复
#2
风吹过b2018-10-15 18:22
如果短的读完了就退出循环,那就写逻辑表达式。
二个 判断 and 吧。
#3
ZHRXJR2018-10-15 21:51
Do While not EOF(1) && Do While not EOF(2)
 VB中好像对循环没有并列的运行方式,可以嵌套,不容许并列!
一般我们采用一个一个文件读取到不同的数组,然后根据需要判断数组元素的值的关系,将符合条件的数值放在同一下标的不同数组中。
Open FN1 for input as #1
Do While not EOF(1)
'............................
'............................读取到数组1中
Loop
Close #1

Open FN2 for input as #2
Do While not EOF(2)
'............................
'............................读取到数组2中
Loop
Close #2
再将数组合并,并写入新的文件中。

如果按下面这样可能会出现数据重复读取的问题,而且运行比较慢,不提倡使用:
Open FN1 for input as #1
Open FN2 for input as #2
Do While not EOF(1)
Do While not EOF(2)
'............................
'............................
Loop
Loop
Close #2
Close #1
#4
wmf20142018-10-16 08:21
回复 楼主 wube
c也不能用逻辑运算符连接两个执行语句吧,好像所有语言基本语法都是运算符两边是表达式、函数、变量、常量。不是很明白你的意思,从你代码分析应该可修改如下:
Open FN1 for input as #1
Open FN2 for input as #2
Do While not EOF(1) and not EOF(2)    '任何一个文件结束则合并结束,合并后的行数是行数最少的那个文件

Line Input #1,A
Line Input #2,B

Loop
Close #2
Close #1

[此贴子已经被作者于2018-10-16 08:33编辑过]

#5
wube2018-11-06 05:00
以下是引用wmf2014在2018-10-16 08:21:18的发言:

c也不能用逻辑运算符连接两个执行语句吧,好像所有语言基本语法都是运算符两边是表达式、函数、变量、常量。不是很明白你的意思,从你代码分析应该可修改如下:
Open FN1 for input as #1
Open FN2 for input as #2
Do While not EOF(1) and not EOF(2)    '任何一个文件结束则合并结束,合并后的行数是行数最少的那个文件

Line Input #1,A
Line Input #2,B

Loop
Close #2
Close #1


https://bbs.bccn.net/thread-490361-1-1.html

我是还没试,不过因为档案大小不依定相同,所以切换档案读取是一个难点。
1