TC官方合作论坛
标题:
2012.10.06第二问。为什么我的软件第一次打开会出现“文件句柄不能为空”?
[打印本页]
作者:
252253494
时间:
2012-10-6 22:05
标题:
2012.10.06第二问。为什么我的软件第一次打开会出现“文件句柄不能为空”?
为什么我的软件第一次打开会出现“文件句柄的值不能为空”? 第二次打开软件就可以正常运行了。
我刚开始怀疑是第一次,文件句柄创建文件,没有创建成功。所以才会出现“文件句柄的值不能为空”的字样。//文件句柄=文件.创建("c:\\WINDOWS\\lsyz.txt","读写")
于是又加了一个如果语句。
如果
(文件句柄!=0)
否则
继续执行代码
如果结束
可以最后还是会出现这种情况“文件句柄的值不能为空”?
以下是我的代码
功能 逻辑型 按钮0_点击()
整型 男,女,分数,下标,大小,文件句柄
字符型 男符,女符,分数符,路径=系统.获取程序路径()
文件句柄=文件.创建("c:\\WINDOWS\\lsyz.txt","读写")
文件.关闭(文件句柄)
如果 (文件句柄!=0)
否则
男符=编辑框.获得文本("编辑框0")
女符=编辑框.获得文本("编辑框1")
男=字符串.长度(男符)
女=字符串.长度(女符)
如果(男<=0)||(女<=0)
辅助.消息框("请输入姓名")
否则
字符型[] 名分//此处名分指的是名字和分数的统称
字符型[] 分割后的值=字符型[2]
字符型 文件内容=文件.读文件("c:\\WINDOWS\\lsyz.txt")
如果(文件内容!="")
字符串.分割(文件内容,"\r\n",名分) // \r\n是换行符
数组.大小(名分,大小)//此处的大小指的是文件内容被分割成好多组。
//辅助.消息框("文本内共有"+转换.整型转字符型(大小)+"行数据")
循环(下标<大小)
字符串.分割(名分[下标],"!",分割后的值)
//辅助.消息框(字符串.格式化("文本内\r\n第%d行前半部分是:%s\r\n第%d行后半部分是:%s",下标+1,分割后的值[0],下标+1,分割后的值[1]))//测试时使用
如果(男符+女符==分割后的值[0])
图片框.设置图片("图片框0","rc:"+分割后的值[1]+".jpg")
辅助.消息框("你娘的,这组名字你不是刚测过嘛,还测?!有病啊!")
跳出
否则
下标=下标+1
如果结束
循环结束
如果结束
如果(男符+女符==分割后的值[0])
否则
男=辅助.随机数(25,50)
女=辅助.随机数(25,50)
分数=男+女
分数符=转换.整型转字符型(分数)
文件句柄=文件.打开("c:\\WINDOWS\\lsyz.txt")
文件.设置游标位置(文件句柄,"结束")
文件.写一行(文件句柄,男符+女符+"!"+分数符)
文件.关闭(文件句柄)
图片框.设置图片("图片框0","rc:"+分数符+".jpg")
//辅助.消息框("姓名配对分数"+分数符)
如果结束
如果结束
如果结束
返回 真
功能结束
把它改成
如果
(文件句柄<=0)
再在文件句柄建立的时候写入一句话??
作者:
冷月无痕
时间:
2012-10-6 22:20
亲 你打开就关闭了
文件句柄=文件.创建("c:\\WINDOWS\\lsyz.txt","读写")
文件.关闭(文件句柄)
如果 (文件句柄!=0)
作者:
252253494
时间:
2012-10-6 22:28
可是我刚开始也试过把 文件.关闭(文件句柄) 这一句给删掉,可以是还是会出现文件句柄的值不能为空??
作者:
冷月无痕
时间:
2012-10-6 22:42
试试先判断文件是否存在 存在就用打开 不存在就创建 再不行就创建后打开
估计有BUG 没测试过
作者:
252253494
时间:
2012-10-6 23:00
其实我刚开始也想过用判断文件是否存在的这个命令。可是我后来忽然发现,管它文件是不是否存在。 不存在,它创建一个就行了。存在的话,貌似它也不会在创建,就算它要创建的话貌似也不会覆盖里面的内容。(我也不知道这个创建命令是否自带逻辑命令:不存在就创建一个;存在就跳过?!) 还有,就是我现在回宿舍换电脑了。所以就测试不到了。只有明天早上在测试测试,看下是否有BUG存在。
作者:
冷月无痕
时间:
2012-10-6 23:40
回复
5楼
252253494
的帖子
创建这个命令是 不存在就创建 存在就打开
但是有没有BUG就不清楚了
作者:
252253494
时间:
2012-10-7 09:12
回复
6楼
冷月无痕
的帖子
还是不行了。不管怎么弄 都在这一行暂停。如果 (文件句柄<=0)
作者:
252253494
时间:
2012-10-7 10:48
求救啊。怎么才能不让文件句柄的值不能为空???
作者:
252253494
时间:
2012-10-7 10:57
以下是我新的代码。
功能 逻辑型 按钮0_点击()
整型 男,女,分数,下标,大小,文件句柄
字符型 男符,女符,分数符
文件句柄=文件.创建("c:\\WINDOWS\\lsyz.txt","读写")
//文件.关闭(文件句柄)
男符=编辑框.获得文本("编辑框0")
女符=编辑框.获得文本("编辑框1")
男=字符串.长度(男符)
女=字符串.长度(女符)
如果(男<=0)||(女<=0)
辅助.消息框("请输入姓名")
否则
字符型[] 名分//此处名分指的是名字和分数的统称
字符型[] 分割后的值=字符型[2]
字符型 文件内容=文件.读文件("c:\\WINDOWS\\lsyz.txt")
如果(文件内容!="")
字符串.分割(文件内容,"\r\n",名分) // \r\n是换行符
数组.大小(名分,大小)//此处的大小指的是文件内容被分割成好多组。
//辅助.消息框("文本内共有"+转换.整型转字符型(大小)+"行数据")
循环(下标<大小)
字符串.分割(名分[下标],"!",分割后的值)
//辅助.消息框(字符串.格式化("文本内\r\n第%d行前半部分是:%s\r\n第%d行后半部分是:%s",下标+1,分割后的值[0],下标+1,分割后的值[1]))//测试时使用
如果(男符+女符==分割后的值[0])
图片框.设置图片("图片框0","rc:"+分割后的值[1]+".jpg")
辅助.消息框("你娘的,这组名字你不是刚测过嘛,还测?!有病啊!")
跳出
否则
下标=下标+1
如果结束
循环结束
如果结束
如果(男符+女符==分割后的值[0])
否则
男=辅助.随机数(25,50)
女=辅助.随机数(25,50)
分数=男+女
分数符=转换.整型转字符型(分数)
文件句柄=文件.打开("c:\\WINDOWS\\lsyz.txt")
文件.设置游标位置(文件句柄,"结束")
文件.写一行(文件句柄,男符+女符+"!"+分数符)
文件.关闭(文件句柄)
图片框.设置图片("图片框0","rc:"+分数符+".jpg")
//辅助.消息框("姓名配对分数"+分数符)
如果结束
如果结束
作者:
夏末
时间:
2012-10-7 11:29
功能 逻辑型 按钮2_点击()
整型 男,女,分数,下标,大小,文件句柄
字符型 男符,女符,分数符,路径=系统.获取程序路径()
逻辑型 是否存在=文件.是否存在("c:\\WINDOWS\\lsyz.txt")
如果(!是否存在)
文件句柄=文件.创建("c:\\WINDOWS\\lsyz.txt","读写")
文件.关闭(文件句柄)
如果结束
男符=编辑框.获得文本("编辑框0")
女符=编辑框.获得文本("编辑框1")
男=字符串.长度(男符)
女=字符串.长度(女符)
如果(男<=0)||(女<=0)
辅助.消息框("请输入姓名")
返回 假 //直接返回 结束后续操作
如果结束
字符型[] 名分//此处名分指的是名字和分数的统称
字符型[] 分割后的值=字符型[2]
字符型 文件内容=文件.读文件("c:\\WINDOWS\\lsyz.txt")
如果(文件内容!="")
字符串.分割(文件内容,"\r\n",名分) // \r\n是换行符
数组.大小(名分,大小)//此处的大小指的是文件内容被分割成好多组。
下标=0 //下标复位 避免重复使用时 数组越界
循环(下标<大小)
字符串.分割(名分[下标],"!",分割后的值)
如果(男符+女符==分割后的值[0])
跳出
否则
下标=下标+1
如果结束
循环结束
如果结束
如果(下标!=大小) //在正常 对比全部数据不重复的情况下 下标 是等于 大小的
图片框.设置图片("图片框0","rc:"+分割后的值[1]+".jpg")
辅助.消息框("你娘的,这组名字你不是刚测过嘛,还测?!有病啊!")
返回 假
否则
男=辅助.随机数(25,50)
女=辅助.随机数(25,50)
分数=男+女
分数符=转换.整型转字符型(分数)
文件句柄=文件.打开("c:\\WINDOWS\\lsyz.txt")
文件.设置游标位置(文件句柄,"结束")
文件.写一行(文件句柄,男符+女符+"!"+分数符)
文件.关闭(文件句柄)
图片框.设置图片("图片框0","rc:"+分数符+".jpg")
//辅助.消息框("姓名配对分数"+分数符)
返回 真
如果结束
功能结束
复制代码
试试把 不知道行不行
作者:
252253494
时间:
2012-10-7 11:58
回复
10楼
夏末
的帖子
大神,可以用了。
作者:
pest
时间:
2012-10-8 04:38
试试
欢迎光临 TC官方合作论坛 (http://bbs.52tc.co/)
Powered by Discuz! X3.1