Как реорганизовать данные в двоичном файле в C? - PullRequest
0 голосов
/ 05 мая 2019

У меня есть двоичный файл, который содержит данные в 128-байтовых блоках, которые распределены по файлу. Каждый блок начинается с массива char длиной 8.

Как реорганизовать данные в этом двоичном файле так, чтобы все 128-байтовые блоки были упорядочены последовательно и чтобы между этими блоками не было неиспользуемого пространства?

Неиспользуемое / нераспределенное пространство просто представлено в этом файле 0, а строки заканчиваются нулем.

Я совсем потерян.

1 Ответ

0 голосов
/ 05 мая 2019

Ваш вопрос не является полной спецификацией, например ::10000

 - what is unused space?
 - do the char arrays contain string terminator or not?
 - is the file small enough to read into memory, or is it large?

Так что я не могу написать это тебе. Однако вы можете легко запрограммировать его, если будете следовать этим инструкциям:

1. Build a list of pointers to the used 128 bytes blocks.
2. Sort that list.
3. You can now overwrite the file looping through the ordered list of pointers.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...