如果从文件的头开始顺序向后处理,能确定出每条数据记录的长度 或 下条数据记录的头部,就可以比较快的处理了。建议:
a. 你要写出:在文件中任意一种数据记录开始的位置都可以判断出这个记录的格式的子过程。b. 你要写出:根据一个数据记录在文件中的位置,读取记录内容并处理记录数据的一组子过程,每种格式对应一个子过程。
这里的处理应该是送到数据库中吧?c. 应该能从前两类子过程中得到下一个数据记录开始的位置。
a. 你要写出:在文件中任意一种数据记录开始的位置都可以判断出这个记录的格式的子过程。b. 你要写出:根据一个数据记录在文件中的位置,读取记录内容并处理记录数据的一组子过程,每种格式对应一个子过程。
这里的处理应该是送到数据库中吧?c. 应该能从前两类子过程中得到下一个数据记录开始的位置。
如果分析出来没有读完,就再读10MB,我想你读的数据总是有用不着的,我想就可丢掉,不必浪费内存
Email: [email protected]
OICQ:372258
能用OICQ,更好用OICQ,会快一些
FileSeek
FileRead
FileWrite
FileClose
查你的DELPHI帮助。
可提高存取速度.
var
hFle: File of Byte.
然后读的时候是按Byte读的.[Byte]还可以换成任意结构!"多个数据段"在Win32中的意思是复合文挡,比如Word.复合文挡里面可以存放任意数目的"目录"(类似目录,原来的名字一下子想不起来)和流(类似于文件的概念).因此一个复合稳当相当于
一个驱动器或卷,里面可以有很多不同的目录和文件.我想你得先定义你自己的存贮结构,然后扫描它的文件.将遇到的没一个记录项田如你的存储结构中.然后进行分析.
你说先定义自己的存贮结构,但实际往往是不固定长度的数据,如Word中的文本,有长有短,是要定义一个动态结构吗,但这样不能建立文件类型呀。怎么办?
simplest example:
type mySet = record
Time: DWORD;
Source: DWORD;
Event: DWORD;
Value: DWORD;
end;
能不能说详细点,最好有个完整的例子。