完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
电子发烧友论坛|
是否有人提取了用于二进制操作的文件的药水。具体来说,我需要读取一个超过缓冲区大小的文件(40KB)。我将逐行编程到一个外部非易失性存储器中。FieloOxRead函数很棒,但我看不出只提取文件的定义部分(块)。有没有一种简单的方法可以做到这一点,或者我是否需要使用扇区读从每个前一扇区的末尾提取下一个扇区地址?虽然不能,但看起来有点混乱…- Thxtim
|
|
相关推荐
19个回答
|
|
|
“定义部分”是什么意思?为什么你指的是部门?您是否试图从任意点开始读取文件?如果是这样,FielooSyk就这样做了。
|
|
|
|
|
|
我的愿望是读取一个40KB文件,但是,我的缓冲区将不支持这个大小。我想我可以填补一个缓冲区(可以是任何大小)。然后将缓冲区编程到外部非易失性存储器中。我真的不想去一个部门的水平,如果我不需要。
|
|
|
|
|
|
FieloOxRead不读取一个块中的整个文件。它读取的字节数是多少。
|
|
|
|
|
|
谢谢J,我确实看到了我指定的大小/计数。是否有一个干净的方法来添加偏移量,以便对文件进行顺序访问?
|
|
|
|
|
|
只需按照JTMeple显示的方式做。也就是说,不要在每个读取之间关闭文件,那么您将获得顺序访问。
|
|
|
|
|
|
甜美!谢谢!
|
|
|
|
|
|
上面发布的代码顺序读取整个文件,最多为32字节。如果文件大小不是缓冲区大小的倍数,则最后一个块将更小;这就是为什么要检查FILEIO_Read返回的长度。
|
|
|
|
|
|
同样,do_.()函数必须正确地处理传递长度为零的情况,如果文件是缓冲区大小的精确倍数,就会发生这种情况。
|
|
|
|
|
|
我不知道,当文件中至少有大量缓冲字节时,你保证得到大量缓冲字节。可能是,但我没有仔细研究他们的密码。但可能不是在媒体上不支持像USB那样的阻塞读取。
|
|
|
|
|
|
在打开文件之前,有没有一种简单的方法来识别可用文件名?我问,因为我的更新文件实际上会有几个不同的版本名称。除了扫描所有可能的名称(其中接近100个)之外,有没有其他方法在选择打开文件名之前读取文件名?我最初的想法是用FieloOxFig()做一个字符串和所有可能的名字比较。然而,这个概念需要相当多的工作。——Thx T
|
|
|
|
|
|
我还没试过,但是我认为FielooSube(“**”,…)会起作用。
|
|
|
|
|
|
名字有什么模式吗?正如约翰所说的“*.*”会给你一切,但例如“*.bin”只会给你一个“bin”扩展文件。
|
|
|
|
|
|
如果文件大小是缓冲区大小的倍数,则进一步考虑仍然会导致最终的0字节读取。媒体完成了,所以这种方法是“安全的”。
|
|
|
|
|
|
是的,我在9的末尾提到过。我倾向于“吮吸它,看看”在我正在实现的系统中通常发生了什么。
|
|
|
|
|
|
我试过使用1024字节缓冲区(比媒体扇区大小或内部USB缓冲区大得多)进行读取,并在一个事务中获得完整的1024字节。
|
|
|
|
|
|
读取多个缓冲区len,上一次读取可能不是偶数len,这会导致inf循环或试图读取过去的eof的错误。在零或NEG中退出。将字节10, 10, 10和8读入缓冲区。
|
|
|
|
|
|
FILEIO_Find()函数看起来像是在记录参数中返回带有附加信息的成功/失败,但它似乎是一个奇异的答案,而不是一个列表。使用通配符,我可以命中特定的目标,但不能收集一个列表……思想?
|
|
|
|
|
|
每次调用FILEIO_Find都会返回一个名称。您必须重复调用它才能得到所有名称。请注意您传递给它的最后一个参数!;)
|
|
|
|
|
|
杰出的!现在我遇到了另一个问题。当我做长的苍蝇名称搜索时,FieloOxSexChyRead只有短文件名存储。它似乎使用相同的结果结构。我错过什么了吗?短文件名:int FILEIO_Find(const char*fileName,无符号int attr,FILEIO_SEARCH_RECORD*.,bool newSearch);长文件名:int FILEIO_Find(const uint16_t*fileName,无符号int attr,FILEIO_SEARCH_RECORD*.,bool newSearch);属性;uint32_t文件大小;FILEIO_TIMESTAMP时间戳;uint32_t baseDirCluster;uint32_t currentDirCluster;uint16_t currentClusterOffset;uint16_t currentEntryOffset;uint16_t路径偏移;uint16_t driveId;}FILEIO_SEARCH_RECORD;Thx-T
|
|
|
|
|
只有小组成员才能发言,加入小组>>
MPLAB X IDE V6.25版本怎么对bootloader和应用程序进行烧录
508 浏览 0 评论
5813 浏览 9 评论
2351 浏览 8 评论
2238 浏览 10 评论
请问是否能把一个ADC值转换成两个字节用来设置PWM占空比?
3545 浏览 3 评论
1163浏览 1评论
有偿咨询,关于MPLAB X IPE烧录PIC32MX所遇到的问题
1122浏览 1评论
我是Microchip 的代理商,有PIC16F1829T-I/SS 技术问题可以咨询我,微信:A-chip-Ti
890浏览 1评论
MPLAB X IDE V6.25版本怎么对bootloader和应用程序进行烧录
508浏览 0评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-15 10:47 , Processed in 1.230304 second(s), Total 108, Slave 91 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
1370