1. 楼主应该重新考虑系统设计, 数据库正好是做这方面的事情的, 本机数据库速度不会慢;
2. 如果使用一个大文件, 前面几位所谓磁盘镞的说法没有意义的, 16个1k文件合并成一个文件的想法是天真的, 效果比1k一个文件还差, 维护更困难;
3. 最简单的办法就是一个大文件, 固定2K数据块, 例如: 简单的文件结果如下:
type
index_type= packed record
name : string[11]; //名称(序号), 可以不包括 '.dat', 如果用数字最好, 直接用 integer, 处理(检索)速度快几十倍以上;
index: integer; // 数据块位移(地址)
end; // 共16字节
data_block = array[0..2047] of char; // 一个数据块;
const max_data_count = 100000;
整个文件结构(内容)如下:
-------------------------------------------------------
max_data_count * index_type; // 头部, 索引信息
max_data_count * data_bock; // 数据
-----------------------------------------------------------------
编程操作的几个关键:
-----------------------------------------------------------------
0. 建议index_type中的name直接用整数: integer;
1. 固定结构文件的定位,读写操作...
2. 对文件头部(索引信息)要一次读出(或写入)约16M数据到内存中(就是个数组);
3. 如果数据比较固定(例如字库等类似的数据), 组织数据(建立原始文件)的时候最好按文件名(序号)排好序, 这个非常重要, 效果最好;
4. 如果数据不固定, 那么剩下的问题就是对文件名(实际上是序号)排序检索的工作了;