发明名称 一种实现在单个文件中循环存储记录的定位读取偏移方法
摘要 本发明公开了一种实现在单个文件中循环存储记录的方法,其包括以下步骤:1)设定文件可存储记录条数的上限值N;2)设定M为不能被N整除的任意正整数;3)按顺序往文件中写入记录,为每条记录分配一个标号A;4)设定标号的方法为:A=(A<sub>pre</sub>+1)%M,其中A<sub>pre</sub>为上一条记录标号值;5)当文件中的记录数达到上限值后,扫描所有记录的标号,若(A+1)%M!=A<sub>next</sub>,则标号为A<sub>next</sub>的记录位置即是继续写入新记录的位置。本发明通过给记录分配标号和取模的方法,实现了在单文件中循环添加记录,可简便定位循环文件中的写游标位置,从而很好地实现读取记录和写入记录,又可有效控制了文件占用空间的大小。
申请公布号 CN103226602B 申请公布日期 2016.08.10
申请号 CN201310150557.9 申请日期 2013.04.26
申请人 福建联迪商用设备有限公司 发明人 王斌
分类号 G06F17/30(2006.01)I 主分类号 G06F17/30(2006.01)I
代理机构 福州君诚知识产权代理有限公司 35211 代理人 戴雨君
主权项 一种实现在单个文件中循环存储记录的定位读取偏移方法,其特征在于:在单个文件中循环存储记录包括以下步骤:1)设定文件可存储记录条数的上限值N;2)设定M为不能被N整除的任意正整数,即N%M!=0,%为取模操作;3)按顺序往文件中写入记录,为每条记录分配一个标号,首条记录的标号为0,标号为非负整数,用A表示;4)设定标号的方法为:A =(A<sub>pre</sub>+1)%M, 其中A<sub>pre</sub>为上一条记录标号值,%为取模操作即(A<sub>pre</sub>+1)与M相除取余数操作;5)当文件中的记录条数首次达到上限值N时,下次从文件头部重新写入记录,并覆盖最旧的记录;6)当文件中的记录数达到上限值后,扫描所有记录的标号,若(A+1)% M != A<sub>next</sub>,则标号为A<sub>next</sub>的记录位置即是继续写入新记录的位置;其中,A<sub>next</sub>为位于当前记录的后一条记录标号;若当前记录位于文件末尾时,A<sub>next</sub>为文件头部记录的标号;所述的定位读取偏移方法为:1) 当文件中的记录数未达到上限值N时, 记录偏移Y= ID * L;其中Y为记录的偏移位置, ID为记录的序号,记录的序号为记录按照添加时间顺序进行排序,从0开始计数,记录的序号ID最大值为N-1;2)当文件记录数达到上限值N后,Y = (C +ID * L) %(N*L);其中,Y为记录的偏移位置,L为记录的长度,设定每条记录的长度相同;ID为记录的序号,记录的序号为记录按照添加时间顺序进行排序,从0开始计数,记录的序号ID最大值为N-1;C为写游标位置的偏移。
地址 350003 福建省福州市鼓楼区洪山园路68号实达科技城