#file #file-io
#файл #файл-ввод-вывод
Вопрос:
У меня есть двоичный файл, записанный из программы VB3. Он записывает записи, которые содержат строки произвольной длины.
Сейчас я пытаюсь прочитать и преобразовать эти файлы, но я не знаю, как определить, где заканчивается одна строка и начинается другая. Есть ли разделитель, или длина указана где-то в начале?
Ответ №1:
Покопавшись в шестнадцатеричном редакторе, я обнаружил следующее:
- Строки произвольной длины начинаются с байта длины, за которым следует нулевой байт, за которым следует строка.
- Массивы любого типа содержат полную длину массива — например, длина массива 6 длин (4 байта) составляет в общей сложности 24 байта. Для этого пустые строки составляют 2 байта (длина 0 и нулевой байт).
Ответ №2:
Они либо разделены, либо существует некоторый шаблон фиксированной длины. Теперь, как мы можем определить отсюда. Откройте файл с помощью шестнадцатеричного редактора (загружается примерно в Google), взгляните.