[求助]向文件追加數(shù)據(jù)后出現(xiàn)亂碼

在讀出原文件后向其追加數(shù)據(jù)出現(xiàn)亂碼。程序如下: i = CH375FileQuery( ); //查詢當(dāng)前文件的信息 NewSize=CH375vFileSize+NewSize;//計(jì)算文件長(zhǎng)度=原文件長(zhǎng)度+追加數(shù)據(jù)長(zhǎng)度 mCmdParam.Locate.mSectorOffset = 0xffffffff; //移到文件的尾部,以扇區(qū)為單位,如果原文件是3字節(jié),則從CH375vSectorSize字節(jié)開始添加 i = CH375FileLocate( ); mCmdParam.Write.mSectorCount = 2; CH375FileWrite(); //在原文件的后面添加數(shù)據(jù)

出現(xiàn)亂碼的情況是什么情況?你要追加的數(shù)據(jù)追加上去了嗎?如果已經(jīng)追加上去了,后面出現(xiàn)了亂碼則很有可能是你更新文件長(zhǎng)度時(shí),文件長(zhǎng)度更新的不對(duì).


數(shù)據(jù)能加上去。只是有時(shí)讀出來的數(shù)據(jù)長(zhǎng)度不對(duì)。


這個(gè)就需要看下你的程序上面,首先一個(gè)在使用LOCATE的函數(shù)的時(shí)候,你需要注意在跳轉(zhuǎn)到文件尾部的話,那么,只會(huì)跳到整扇區(qū)的位置,這樣的話,在你往下寫數(shù)據(jù)的時(shí)候,就有可能把不是整扇區(qū)的部分?jǐn)?shù)據(jù)給丟掉.而你在更新文件長(zhǎng)度的時(shí)候就可能出現(xiàn)實(shí)際的文件長(zhǎng)度并不是你實(shí)際寫下去的文件長(zhǎng)度,可能會(huì)出錯(cuò).


請(qǐng)問那該怎么做?


實(shí)際操作的時(shí)候你可以先把文件末尾的數(shù)據(jù)先讀進(jìn)來,然后在把你要的數(shù)據(jù)和最后不滿一個(gè)扇區(qū)的數(shù)據(jù)組合成一個(gè)整扇區(qū),在寫下去就可以了.


不能跳過未滿的扇區(qū),直接從下一扇區(qū)寫進(jìn)去嗎?


不可以,即使可以的話,在FAY表的鏈接上面也會(huì)出問題,最后會(huì)導(dǎo)致文件損壞.或者你寫數(shù)據(jù)的時(shí)候可以按照字節(jié)方式來進(jìn)行寫,這樣的話就可以直接跳到文件的真正的尾部,但是不允許你按照扇區(qū)來進(jìn)行讀寫數(shù)據(jù).


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

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