找回密码
 注册
Simdroid-非首页
查看: 82|回复: 2

[命令/FISH] 哪位高手帮忙看看我这个简单的FISH程序吧

[复制链接]
发表于 2010-11-7 15:24:44 | 显示全部楼层 |阅读模式 来自 北京
本帖最后由 once-dreamer 于 2010-11-7 15:50 编辑

问题写在后面了
谢谢各位高手了~~
n
def write_file
array useless(3)
loop n(1,3)
  useless(n)=n*n
endloop
status=open('useless.dat',1,0)
status=write(useless,3)
status=close
end

def write_file_2
array useless2(3)
loop n(1,3)
  useless2(n)=n*n+1
endloop
status=open('useless.dat',2,0);这里的“2”我是想实现后面的数据追加到这个文件里面去,如果还用“1”的话,会导致前面的文件被覆盖。但是用“2”会报错。
status=write(useless2,3)
status=close
end

def read_file
array bb(6)
status=open('useless.dat',0,0)
status=read(bb,6)
status=close
loop n(1,6)
  oo=out(bb(n))
endloop
end
write_file
write_file_2
read_file
 楼主| 发表于 2010-11-7 19:35:35 | 显示全部楼层 来自 北京
Simdroid开发平台
我找到问题的原因了,第一次保存文件的时候应该是自动在文件末尾追加了文件结束符,类似EOF之类的,所以后面追加数据后这个EOF被当做某种字符数据了,于是再读的时候就会出现格式不匹配的问题。可是FISH里面不能自动去掉那个结束符么?
回复 不支持

使用道具 举报

 楼主| 发表于 2010-11-7 19:52:21 | 显示全部楼层 来自 北京
[s:73]
我把它搞定了,呵呵,我自己在这自言自语半天,我自己把答案写出来吧,像我一样的初学者遇到了可以参考一下。问题就是出在上面那个文件结束符的地方。我把修改后的代码贴在下面,仅供参考~~

n
def write_file
        array useless(3)
        loop n(1,3)
                useless(n)=n*n
        endloop
        status=open('useless.dat',2,0)
        status=write(useless,3)
        ;status=close;这句不要了,也就是不关闭文件了,这样就不会生成那个结束符了
end

def write_file_2
        array useless2(3)
        loop n(1,3)
                useless2(n)=n*n+1
        endloop
        ;status=open('useless.dat',2,0);这句也不要了,不用重新打开文件了
        status=write(useless2,3)
        status=close
end

def read_file
        array bb(6)
        status=open('useless.dat',0,0)
        status=read(bb,6)
        status=close
        loop n(1,6)
                oo=out(bb(n))
        endloop
end
write_file
write_file_2
read_file
sys del useless.dat;这里加了这句,免得每次自己去删已经生成的文件
回复 不支持

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|小黑屋|联系我们|仿真互动网 ( 京ICP备15048925号-7 )

GMT+8, 2024-5-14 19:55 , Processed in 0.033256 second(s), 13 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表