CH376 如何清空一個文件

我在設(shè)計中遇到了這樣的問題,用ch376編輯U盤上的文件,文件編輯后長度變短。

編輯后重新寫入U盤,只能覆蓋原來重合的部分,源文件比新文件多出來的部分還在。

如果清空文件然后再寫入就可避免,請問怎么清空一個文件內(nèi)容?

我們沒有清空文件的命令,你可以第二次寫之后強制更新文件長度,可以參考例程EXAM8


EXAM8 例子里面是用數(shù)據(jù)塊(扇區(qū))寫的方式來實現(xiàn) 強制更新文件長度,但是SD卡里同樣的操作怎么辦?SD卡不支持?jǐn)?shù)據(jù)塊(扇區(qū))讀寫


如果是修改部分內(nèi)容的話是可以的,如果是在中間刪除在修改部分?jǐn)?shù)據(jù)的話那么會比較麻煩,SD卡的修改通過字節(jié)方式來操作也是可以的。


我是把一個文件全部讀入內(nèi)存中,然后修改后再重新寫入文件。

寫入的時候怎么操作,具體語句怎么執(zhí)行? 比如 我把內(nèi)容為“1234567890”的文件“abc.TXT”從sd卡讀入單片機(jī)的 buf[10]中, 然后刪掉了“890”,這時候buf[] 內(nèi)容變?yōu)椤?234567000”

現(xiàn)在我想把內(nèi)容“1234567”寫入文件abc.txt里面?怎么操作?

“ s = CH376ByteWrite(buf, 7, NULL ); mStopIfError(s); ” 像這樣操作后文件內(nèi)容還是“1234567890” 而我需要的文件內(nèi)容為“1234567”


在寫之前需要用BYTELOCATE命令將文件指針指到你要寫數(shù)據(jù)的位置,在調(diào)用寫函數(shù),寫完之后關(guān)閉文件之前修改文件長度。如果你寫了2個字節(jié),則文件長度為2。寫了10個就為10。


修改文件長度 是哪個函數(shù)?


修改文件長度 是哪個函數(shù)或者命令 我怎么沒找到啊


你可以直接修改文件目錄項FAT_DIR_INFO中的文件長度,參考下面程序: UINT8 SetFilelen( PUINT8 iFileName, UINT16 len) { UINT8 s; s = CH376FileOpen( iFileName ); /* 打開文件 */ if ( s == USB_INT_SUCCESS ) { /* 文件讀寫操作等... */ s = CH376DirInfoRead( ); /* 讀取當(dāng)前文件的目錄信息FAT_DIR_INFO,將相關(guān)數(shù)據(jù)調(diào)到內(nèi)存中 */ if ( s == USB_INT_SUCCESS ) { buf[0] = (UINT8)len; /* 文件長度*/ buf[1] = (UINT8)(len>>8); buf[2] = (UINT8)(len>>16); buf[3] = (UINT8)(len>>24); CH376WriteOfsBlock( buf, STRUCT_OFFSET( FAT_DIR_INFO, DIR_FileSize ), 4 ); /* 向內(nèi)部緩沖區(qū)偏移地址DIR_FileSize寫入4個字節(jié) */ s = CH376DirInfoSave( ); /* 保存文件的目錄信息 */ if ( s == USB_INT_SUCCESS ) { /* 成功修改并保存 */ /* 文件讀寫操作等... */ } } CH376FileClose( FALSE ); /* 關(guān)閉文件 */ } return( s ); }


謝謝 已解決問題


只有登錄才能回復(fù),可以選擇微信賬號登錄

国产91精品新入口,国产成人综合网在线播放,九热这里只有精品,本道在线观看,美女视频a美女视频,韩国美女激情视频,日本美女pvp视频