回 帖 发 新 帖 刷新版面

主题:请帮个忙!谢谢! (正如ZOM所了,我遇到特殊情况了!

在上几帖中有有这样一帖子:

有2文件,分别为:A.TXT 和 B.TXT

如何判别a.txt和b.txt2个文本是否相同,当相同就运行SHELL "A.EXE"命令,如果不相同就运行SHELL "B.EXE"命令?

说明:假设A.TXT里有一串数字 12345678
         B.TXT里有一串数字也是 12345678
那么A.TXT就和B.TXT相同.
如果2个文本数字的大小和数字的位数不同,那么就2个文本不相同.

谢谢!


open "A.txt" for binary as #1
open "B.txt" for binary as #2
if lof(1)=lof(2) then
  same=-1
  do until eof(1)
     a$=input$(16383,#1)
     b$=input$(16383,#2)
     if a$<>b$ then
        same=0
        exit do
     endif
  loop
endif
close #1,#2
if same then shell "A.EXE" else shell "B.EXE"

请问如何把他改成:
                 如果 A.TXT里的数字大于B.TXT里的数字则运行 shell "A"
                 如果 A.TXT里的数字小于B.TXT里的数字则运行 shell "B"

请大家帮个忙,谢谢了!

回复列表 (共11个回复)

沙发

这个好像很简单
把这一句改一下就行了
if a$<>b$ then
改成
if a$<b$ then
就可以了

但至于你那些数字的位置和怎样比较具体的大小
比如说
123456789

999
这些特殊情况的处理嘛......
需要看你的文件的具体可能性.

板凳

直接val了把,不用那么费事,moz
val直接把其他字符前的数字转换为数值

3 楼

谢谢!

4 楼

val 我知道
所以说得看具体的比较要求
如果只是比较值的大小,应该用val

5 楼

建议:请在标题中具体、明确点明主题,最好不用“小菜问题”、“跪求”之类的模糊标题。

6 楼

为什么程序在判别大小时91402 反而比101402大呢?
其他的都正常如:81402和71402
               71402和61402
               ............
               都是前者大
请MOZ帮忙能帮我解决这个问题吗?

7 楼

这不是我料的,
是 def 说的,
他也说了有解决办法.

你再把这一句改一下:
if a$<b$ then
改成:
if val(a$) < val(b$) then
应该可以的了.

8 楼

改了以后好是和老的一样,比较还是错误.

9 楼

数值里是不是有逗号 "," ?

10 楼

如果没有逗号的话:
open "A.txt" for input as #1
open "B.txt" for input as #2
input #1,a
input #2,b
close #1,#2
if a=b then shell "A.EXE" else shell "B.EXE"

如果有逗号的话:
open "A.txt" for input as #1
open "B.txt" for input as #2
line input #1,a$
line input #2,b$
quduohao a$
quduohao b$
close #1,#2
if val(a$)=val(b$) then shell "A.EXE" else shell "B.EXE"

sub quduohao c$
for i%=1 to len(c$)
   if mid$(c$,i%,1)="," then mid$(c$,i%,1)=" "
next
end sub

我来回复

您尚未登录,请登录后再回复。点此登录或注册