主题:请教OPEN的问题
andangel
[专家分:0] 发布于 2005-08-06 11:07:00
小弟想写一个自动在一个文件写入一个数字的程序。
但是刚刚接触QB所以想请教。
如果我想程序运行时提示键入一个数字
然后将数字写入TCP.CFG内
TCP.CFG文件内容是
IP = 192.168.10.*
NETMASK = 255.255.255.0
GATEWAY = 192.168.10.254
我只想将我键入的数字替换到这个文件中的*上要如何实现[em8]
回复列表 (共9个回复)
沙发
飞鸟12 [专家分:2830] 发布于 2005-08-06 10:53:00
开始是这样吗
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
板凳
andangel [专家分:0] 发布于 2005-08-06 11:10:00
对比起我前面写错了
格式是这样的
IP = 192.168.10.*
NETMASK = 255.255.255.0
GATEWAY = 192.168.10.254
我只要修改这个*字
3 楼
andangel [专家分:0] 发布于 2005-08-06 11:31:00
谢谢上面的朋友
的确可以但是好奇怪哦
既然会在输入后面显示一个?哈哈
不过没关系测试通过但是麻烦的是要用输入政条内容
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 楼
moz [专家分:37620] 发布于 2005-08-06 11:56:00
假如你文件的内容就是你所说的那样有一个"*"号的话
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 楼
飞鸟12 [专家分:2830] 发布于 2005-08-07 11:02:00
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 楼
qb45 [专家分:2880] 发布于 2005-08-07 15:41:00
我理解你说的意思是要新建立一个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 楼
andangel [专家分:0] 发布于 2005-08-12 12:11:00
谢谢大家鞠躬
8 楼
andangel [专家分:0] 发布于 2005-08-12 12:16:00
都想给30分可惜不能了
9 楼
def [专家分:3380] 发布于 2005-08-12 17:17:00
爱!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
我来回复