169 похожих чатов

Стоит ли применять для разбора бинарного формата (в данном случае

Microsoft Compound File Binary) backtracking?
Я просматривал, как это сделано на языке, который я понимаю чуть лучше, там на каждый чих кидаются warnings, а иногда есть exceptions. Для exceptions есть аналог в виде Either, а вот с предупреждениями не знаю. да и стоит ли?

4 ответов

13 просмотров

Бэктрекинг по возможности лучше вообще не делать. Но не у всех форматов есть такая возможность.

Я бы вообще не стал задумываться о содержимом если это не нужно для дальнейшего разбора. А всякую валидацию делать уже после завершения работ с разбором. Там что хочешь, то и кидай.

IC Rainbow
Я бы вообще не стал задумываться о содержимом если...

хорошо. а если, к примеру, будет происходить разбор, но файл заканчивается не там, где надо? к примеру, для корректного разбора нужен массив байт (назовём его так) длиной 80 байт, а на вход подаётся 60, к примеру. (наверное, это зависит от библиотеку (я использую binary), так что нужно провести эксперименты)

Воинствующий Безбожник
хорошо. а если, к примеру, будет происходить разбо...

Get сам расскажет где ошибка случилась, дополнительно не надо проверять.

Похожие вопросы

Обсуждают сегодня

а через ESC-код ?
Alexey Kulakov
29
30500 за редактор? )
Владимир
47
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
13
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
program test; {$mode delphi} procedure proc(v: int32); overload; begin end; procedure proc(v: int64); overload; begin end; var x: uint64; begin proc(x); end. Уж не знаю...
notme
6
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
вы делали что-то подобное и как? может есть либы готовые? увидел картинку нокода, где всё линиями соединено и стало интересно попробовать то же в ddl на lua сделать. решил с ч...
Victor
8
Ребят в СИ можно реализовать ООП?
Николай
33
Подскажите пожалуйста, как в CustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); получить наз...
A Z
7
Карта сайта