Сообщение от
SAM style
Предложи свой вариант определения типа файла (trd-scl) не по расширению. Да и зачем это для винды, когда там есть плагины для фара?
Быстрый детект SCL по сигнатуре 'SINCLAIR' и последующему байту в диапазоне 1-255:
Код:
namespace SCL
{
using namespace Formats;
const std::string FORMAT(
"'S'I'N'C'L'A'I'R"
"01-ff"
);
Детальная проверка также включает в себя подсчет и сверку контрольной суммы.
С TRD ситуация гораздо хуже.
Быстрый детект по содержимому сервисного сектора и примерной структуре каталога (можно облегчить):
Код:
namespace TRD
{
using namespace Formats;
const std::string FORMAT(
"(00|01|20-7f??????? ??? ?? ? 0x 00-a0){128}"
//service sector
"00" //zero
"?{224}" //reserved
"?" //free sector
"?" //free track
"16" //type DS_DD
"01-7f" //files
"?00-09" //free sectors
"10" //ID
"0000?????????00"//reserved
"?" //deleted files
"20-7f{8}"//title
"000000" //reserved
);
Детальная проверка может включать анализ файлов на непересечения.