硬汉嵌入式论坛

 找回密码
 立即注册
查看: 3875|回复: 7
收起左侧

[FatFs] 如何在FatFS 读取.TXT中特定的汉字~

[复制链接]

11

主题

103

回帖

31

积分

初级会员

积分
31
发表于 2015-12-12 09:33:12 | 显示全部楼层 |阅读模式
问题: 在nand flash中存入一个 01.txt   ,之后在单片机上通过fatfs(当然,其他文件系统也行)读取它, 01.txt的内容是: 01.开灯  02.关掉 03.白炽灯
那我该如何读取到“开灯”这个特定的汉字呢?
我自己的思路: 先通过一数组pBuff,把01.txt的数据全部存入pBuff,之后通过strpos对比pBuff[],找到特定字“01.”的地址(用strpos这个函数),就知道紧跟后面的函数的地址X
             此时,我们把pBuff[x],和pBuff[x+1]拿出来就是 "开"、"灯"了。


当然,上面的方法还有待验证,结果我稍后尝试。大家还有什么更好的方法呢?
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106938
QQ
发表于 2015-12-12 10:24:50 | 显示全部楼层
可以给每个命令的开头设置一个特殊的字符,单字节字符就行,比如用*号表示命令的识别。
回复

使用道具 举报

11

主题

103

回帖

31

积分

初级会员

积分
31
 楼主| 发表于 2015-12-12 10:44:39 | 显示全部楼层

回 eric2013 的帖子

eric2013:
可以给每个命令的开头设置一个特殊的字符,单字节字符就行,比如用*号表示命令的识别。
问题: 在nand flash中存入一个 01.txt   ,之后在单片机上通过fatfs(当然,其他文件系统也行)读取它, 01.txt的内容是: 01.开灯  02.关掉 03.白炽灯
那我该如何读取到“开灯”这个特定的汉字呢?
我自己的思路: 先通过一数组pBuff,把01.txt的数据全部存入pBuff,之后通过strpos对比pBuff[],找到特定字“01.”的地址(用strpos这个函数),就知道紧跟后面的函数的地址X
             此时,我们把pBuff[x],和pBuff[x+1]拿出来就是 "开"、"灯"了。


当然,上面的方法还有待验证,结果我稍后尝试。大家还有什么更好的方法呢?


什么意思? 如果按你的说法岂不是都变成了 *开打  *关灯?
我现在需要识别里面全部的字,分别取出来显示。 比如在第一个 BUTTOM 显示开灯, 第二个 BUTTOM显示关灯。
以后我只要改.txt 里面的关灯  开灯,就可以在emwin实现动态显示汉字!


QQ截图20151212104149.png
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106938
QQ
发表于 2015-12-12 10:56:23 | 显示全部楼层

回 qq27488 的帖子

qq27488:问题: 在nand flash中存入一个 01.txt   ,之后在单片机上通过fatfs(当然,其他文件系统也行)读取它, 01.txt的内容是: 01.开灯  02.关掉 03.白炽灯
那我该如何读取到“开灯”这个特定的汉字呢?
我自己的思路: 先通过一数组pBuff,把01.txt的数据全部 .. (2015-12-12 10:44) 
可以的,那就按照你自己的思路实现即可。
回复

使用道具 举报

11

主题

103

回帖

31

积分

初级会员

积分
31
 楼主| 发表于 2015-12-15 16:59:24 | 显示全部楼层
已经实现,  利用 strstr 函数 读取~
回复

使用道具 举报

5

主题

578

回帖

593

积分

版主

Rank: 7Rank: 7Rank: 7

积分
593
发表于 2015-12-16 09:32:17 | 显示全部楼层
这不是sscanf的用法么
回复

使用道具 举报

11

主题

103

回帖

31

积分

初级会员

积分
31
 楼主| 发表于 2015-12-23 17:47:54 | 显示全部楼层

回 myxiaonia 的帖子

myxiaonia:这不是sscanf的用法么 (2015-12-16 09:32) 
stm32 的string.h 库中没有你这个函数, 有限制~
回复

使用道具 举报

5

主题

578

回帖

593

积分

版主

Rank: 7Rank: 7Rank: 7

积分
593
发表于 2015-12-26 23:55:21 | 显示全部楼层

回 qq27488 的帖子

qq27488:stm32 的string.h 库中没有你这个函数, 有限制~ (2015-12-23 17:47) 
我用过sscanf啊,而且这个是在stdio中的

sprintf用于格式化字符串,sscanf就是从格式化字符串里获得变量
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-5-11 02:02 , Processed in 0.282069 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表