从SD卡读出记录后排序的问题

2019-12-18 18:47发布


现在有个单片机项目,需要做一个历史记录,每次发生此事件后存入SD卡,再进入到历史记录查询页面的时候,将SD卡的数据读出来显示到屏幕上,并且得按时间排序,最新的时间要显示在第一条
记录的内容格式是  序号         日期              /时间              /内容   
                   比如是  1          2018-09-21     11:09             柜门打开
                               2          2018-09-20     11:09             柜门关闭
                               3          2018-09-19     11:09             xxxx
                               4          2018-09-18     11:09             xxxx

因为如果按照正常来说,随着时间的增长,SD卡也在保持正增长,这样从后往前读,读出来的就是正序了, 如果时间久了,SD卡容量满了,要删除掉最早之前的那条记录占得物理位置,再在此位置写入一条新纪录,
像这种情况就不知道怎么做了, 并且还有个问题, 如果后来时间校准了, 这也就乱了。
个人认为最好的办法是全部读出来然后按时间排序,但是没有做过这方面的数据结构,请教一下各位有经验的大佬们该怎么做,麻烦指点一下给个思路,非常感谢!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
9条回答
鲜衣怒马
1楼-- · 2019-12-18 19:56
不是已经有序号了吗,还用再按时间排序?
技术宅
2楼-- · 2019-12-18 21:20
鲜衣怒马 发表于 2018-9-21 11:24
不是已经有序号了吗,还用再按时间排序?

序号只是显示的时候用的,实际存储的时候存这个序号没什么意义。
比如之前时间是2018-9-11,一直按这个时间存,  后来时间不准,把时间校准为2018-9-10,这样的话,再读出来后,就成了9-10日期的反而比9-11日期的还在前面显示了。
cumt_123456
3楼-- · 2019-12-19 01:30
前段时间刚好遇到这个问题,这样可靠性不好。SD卡存储会偶尔中断,出错等问题。显示时候还会遇到序列错乱。当前我是单独开辟FLASH,添加序列号存储的,不过容量就小多了。
技术宅
4楼-- · 2019-12-19 06:29
 精彩回答 2  元偷偷看……
cumt_123456
5楼-- · 2019-12-19 09:13
技术宅 发表于 2018-9-21 12:16
SD卡还有这个问题啊?还真不知道, 但是我这历史记录要求太多了。用flash行不通, 那手机怎么解决sd卡的 ...

你说的SD卡存储,可以不用文件系统,直接存储。
jiaowoxiaolu
6楼-- · 2019-12-19 10:38
序号就行了,每次开机先读卡,接着上次关机的序号存

一周热门 更多>