一个非常迷的问题
gamemaker吧
全部回复
仅看楼主
level 12
_GASTER☜_ 楼主
如图所示。结果提示“Error reading byte.”
我非常确定文件存在。也没有显示YYSB.所以,GM8的二进制读取是有什么神奇的原理吗?
2018年11月17日 02点11分 1
level 15
你无法在二进制文件模式下用写入字节函数来写入字符串,所以你没有往文件里写入任何东西,之后循环读取时位置超过文件长度所以报错
2018年11月17日 08点11分 3
那么怎么写入?
2018年11月17日 09点11分
F1找file_text_系列函数读写文本文件
2018年11月17日 09点11分
@sunyubokkkkk 那file bin write byte有实际作用吗?
2018年11月17日 09点11分
@_GASTER☜_ 有啊,你写入二进制文件的时候,写入一个字节
2018年11月17日 09点11分
level 12
_GASTER☜_ 楼主
我怀疑write byte一次只能写入一个字节,正如二楼所说,因此导致了我愚蠢的错误。
所以我将写入字节加入了for中,然后用string_char_at每次向文件写入我要的字节。
修改以后的代码大概是这个鬼样子:(只需要看for内改动即可)。
(注释:file_text_write_string我试过了,它似乎并不能用于对二进制进行写入,你必须得再用file_text_open_read打开,但那样的话,那就不是二进制了。
另外我非常确信文件存在并读取成功了,但由于某些原因我把我一楼的检测文件措施删了。(但在我删之前我检测过确信没错)
)
2018年11月17日 15点11分 4
2018年11月17日 15点11分
file_bin_write_byte就是写入一个字节,函数接受的第二个参数应该传入一个数字而非字符串,试试用ord函数把string_char_at返回值变为数字。另外写完一次之后文件当前指向位置自动会增加,无需手动seek。
2018年11月17日 15点11分
@sunyubokkkkk 我想我明白了,我会试试。
2018年11月18日 03点11分
level 12
_GASTER☜_ 楼主
我想也许这真的是yoyogames的问题?
错误的提示一如既往。@sunyubokkkkk
2018年11月18日 03点11分 5
不不,刚打开的文件位置在0,写入一字节位置自动升到1,此时再读是读的位置1,但文件只有位置0有数据当然读不出,这里就需要seek把位置回到0。
2018年11月18日 03点11分
1