求助,关于9860 SDK中的写文件函数。
本帖最后由 bingkai 于 2014-2-17 21:48 编辑请问,9860SDK中,Bfile_OpenFile只能追加打开文件么?我想往一个文件里写入一些数据,每次都写在文件末尾,而不能直接覆盖写入。
比如这个:
FONTCHARACTER * CharToFont(const char *cFileName,FONTCHARACTER *fFileName){
int i,len = strlen(cFileName);
for(i=0; i<len ;++i)
fFileName = cFileName;
fFileName=0;
return fFileName;
}
int AddIn_main(int isAppli, unsigned short OptionNum)
{
unsigned int key;
int handle,i=20;
char c = 0x42;
FONTCHARACTER file_name;
CharToFont("\\\\crd0\\test.txt",file_name);
handle = Bfile_OpenFile(file_name,_OPENMODE_WRITE);
if (handle <0) {
locate (1,1);
Print("file open error!");
GetKey(&key);
}
while(i>0){
Bfile_SeekFile (handle,0); //此句没有用??
Bfile_WriteFile (handle,&c,sizeof(c));
i--;
}
locate (1,1);
Print("OK!");
GetKey(&key);
return 1;
}
创建一个文本文件test.txt,里面写若干个字符A,这段程序运行完会在末尾增加20个B,而不是将A覆盖掉。
为啥啊??怎么才能覆盖写入?
先删除原来的文件,再重建。Storage Memory是只读的。 我上面写的是crd0,不是fls0
事实上你说对了,无论Sd卡还是Storage Memory,都必须先擦除再写。
而且在Storage Memory上,还无法用Bfile_CreateFile创建新文件。
我是9750刷的9860,没有sd卡,有什么办法能让程序把数据保存起来么?
bingkai 发表于 2014-2-19 14:17 static/image/common/back.gif
我上面写的是crd0,不是fls0
事实上你说对了,无论Sd卡还是Storage Memory,都必须先擦除再写。
而且在St ...
存在Storage Memory里面。 ExAcler 发表于 2014-2-21 19:05 static/image/common/back.gif
Sto里面写文件,不过个人认为在Main Mem里面保存会更方便一些
是的。不过总感觉在Main里面不是很安全…… 我测试了一下:
SD下:可以创建文件,可以追加写入,不可以覆盖写入
sto下:创建,追加,覆盖都不行,在计算器上根本就不可操作。这块闪存只能在PC端用fa124把内容刷进去。
页:
[1]