var
    streamFile:TFileStream;
    bRowByte:Array[1..2] of Byte;
    nFileSize:integer;//文件大小
    nCurLeftSize:integer;//剩余文件大小
begin
    streamFile:=TFileStream.Create(m_strDATName, fmOpenRead); //只读方式打开文件    nFileSize:=streamFile.Size; //得到文件大小    streamFile.Seek(8, soFromBeginning); //从文件第 8 个字节开始读取数据    nCurLeftSize:=nFileSize - 8;//剩余文件大小    try
        while nCurLeftSize > 0 do
        begin
            streamFile.Read(bRowByte, 2);//每次读取两个字节数据
            //处理这两个字节的数据
            //.....
            //
            nCurLeftSize:=nCurLeftSize - 2; //剩余文件大小
            streamFile.Seek(nRowByteNum, soFromCurrent); //跳过nRowByteNum 个字节数据
            nCurLeftSize:=nCurLeftSize - nRowByteNum; //剩余文件大小
        end;
    finally
        streamFile.Free;
    end;
    //.....