69,369
社区成员
发帖
与我相关
我的任务
分享
void WCsvFile_Newndex(char *buff)
{
char *CsvMemory;
u8 buffsize;
u32 CsvMemorySize;//申请内存的尺寸
buffsize = strlen(buff);//计算字符串 字符个数
CsvMemorySize = CsvDataSize + buffsize + 1 ;//计算申请内存的尺寸
CsvMemory = mymalloc(SRAMEX,CsvMemorySize);//申请一段总内存
if(CsvMemory == NULL) return;//申请不到数据
memcpy(CsvMemory,CsvDataSpace,CsvDataSize); //把前一段内存拷贝进去
memcpy(CsvMemory + CsvDataSize,buff,buffsize);//存入更改数据
f_lseek (CsvFile ,0);//指针移到文件开头
f_truncate (CsvFile);//截断(清除)当前文件指针后的文件数据 避免数据坑余
f_write(CsvFile,CsvMemory,CsvMemorySize,&Csv_bw); //存入后一段数据 (整段新数据)
myfree(SRAMEX,CsvDataSpace);//清空之前的申请旧数据的内存
CsvDataSize = CsvMemorySize;//更新数据尺寸
CsvDataSpace = CsvMemory;//更新数据,交换内存指向新数据地址
}
void WCsvFile_NewRowData(char *buff)
{
char *CsvMemory;
u8 buffsize;
u32 CsvMemorySize;//申请内存的尺寸
buffsize = strlen(buff);//计算字符串 字符个数
CsvMemorySize = CsvDataSize + buffsize;//计算申请内存的尺寸
CsvMemory = mymalloc(SRAMEX,CsvMemorySize);//申请一段总内存
if(CsvMemory == NULL) return;//申请不到数据
memset(CsvMemory,0,CsvMemorySize);
memcpy(CsvMemory,CsvDataSpace,CsvDataSize); //把前一段内存拷贝进去
memcpy(CsvMemory + CsvDataSize,buff,buffsize);//存入更改数据
f_lseek (CsvFile ,0);//指针移到文件开头
f_truncate (CsvFile);//截断(清除)当前文件指针后的文件数据 避免数据坑余
f_write(CsvFile,CsvMemory,CsvMemorySize,&Csv_bw); //存入后一段数据 (整段新数据)
myfree(SRAMEX,CsvDataSpace);//清空之前的申请旧数据的内存
CsvDataSize = CsvMemorySize;//更新数据尺寸
CsvDataSpace = CsvMemory;//更新数据,交换内存指向新数据地址
}
和昨天发的应该没大区别,是在别的函数影响下写入不正常