回 帖 发 新 帖 刷新版面

主题:请教OPEN的问题

小弟想写一个自动在一个文件写入一个数字的程序。
但是刚刚接触QB所以想请教。
如果我想程序运行时提示键入一个数字
然后将数字写入TCP.CFG内
TCP.CFG文件内容是
IP = 192.168.10.*
NETMASK = 255.255.255.0
GATEWAY = 192.168.10.254
我只想将我键入的数字替换到这个文件中的*上要如何实现[em8]

回复列表 (共9个回复)

沙发

开始是这样吗
IP = *.*.*.*
NETMASK = *.*.*.*
GATEWAY = *.*.*.*

另一种简单实现
OPEN "tcp.cfg" FOR APPEND AS #1
INPUT "IP = "; ip$
INPUT "NETMASK = "; netmask$
INPUT "GATEWAY = "; gateway$
PRINT #1, "IP = "; ip$
PRINT #1, "NETMASK = "; netmask$
PRINT #1, "GATEWAY = "; gateway$
CLOSE
SHELL "type tcp.cfg"
END

板凳

对比起我前面写错了
格式是这样的
IP = 192.168.10.*
NETMASK = 255.255.255.0
GATEWAY = 192.168.10.254
我只要修改这个*字

3 楼

谢谢上面的朋友
的确可以但是好奇怪哦
既然会在输入后面显示一个?哈哈
不过没关系测试通过但是麻烦的是要用输入政条内容
OPEN "tcp.cfg" FOR APPEND AS #1
INPUT "IP = "; ip$
INPUT "NETMASK = "; netmask$
INPUT "GATEWAY = "; gateway$
PRINT #1, "IP = "; ip$
PRINT #1, "NETMASK = "; netmask$
PRINT #1, "GATEWAY = "; gateway$
CLOSE
SHELL "type tcp.cfg"
END
这里的APPEND 我用OUTPUT
因为是我前面没说明白哈哈
所以抱歉加谢谢

4 楼

假如你文件的内容就是你所说的那样有一个"*"号的话

input i%
open "tcp.cfg" for binary as #1
k$=input$(16383,#1)
j%=instr(k$,"*")
k$=left$(k$,j%-1)+ltrim$(str$(i%))+mid$(k$,j%+1)
seek #1,1
put #1,,k$
close #1
shell "type tcp.cfg"
不过要小心,因为我默认你的文件格式是没有错的,
所以我省略了很多错误判别的语句.

5 楼

OPEN "tcp.cfg" FOR INPUT AS #1
OPEN "temp.cfg" FOR OUTPUT AS #2
CLS
WHILE NOT EOF(1)
  LINE INPUT #1, temp$
  sp = 1
  DO
    sp = INSTR(sp, temp$, "*")
    IF sp <> 0 THEN
      PRINT temp$
      INPUT x$
      temp$ = LEFT$(temp$, sp - 1) + x$ + RIGHT$(temp$, LEN(temp$) - sp)
    END IF
  LOOP UNTIL sp = 0
  PRINT temp$
  PRINT #2, temp$
WEND
CLOSE
KILL "tcp.cfg"
NAME "temp.cfg" AS "tcp.cfg"
PRINT
SHELL "type tcp.cfg"
END
数据中如果一行中有几个*,则数据每次只输入最前面的那一个
IP = 192.*.10.25
NETMASK = 255.*.*.0
GATEWAY = *.*.*.254

IP = 192.*.10.25
? 10
IP = 192.10.10.25
NETMASK = 255.*.*.0
? 23
NETMASK = 255.23.*.0
? 36
NETMASK = 255.23.36.0
GATEWAY = *.*.*.254
? 23
GATEWAY = 23.*.*.254
? 14
GATEWAY = 23.14.*.254
? 56
GATEWAY = 23.14.56.254

IP = 192.10.10.25
NETMASK = 255.23.36.0
GATEWAY = 23.14.56.254

6 楼

我理解你说的意思是要新建立一个IP数据库文件,所以写了下面的代码
'定义数据
ip$="IP = 192.168.10."
net$="NETMASK = 255.255.255.0"
gat$="GATEWAY = 192.168.10.254"
OPEN "tcp.cfg" FOR output AS #1  '打开文件
'开始建立数据
do
   input "ip= ",p$
   if p$="" then exit do '如果没有输入,直接按了回车键,退出循环
   print #1,ip$+p$
   print #1,net$
   print #1,gat$
loop
END

7 楼

谢谢大家鞠躬

8 楼

都想给30分可惜不能了

9 楼

爱!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

我来回复

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