zak100 Ответов: 3

Информация о размере заголовка файла


Hi,
I want to change the header of some document files like pdf, ms word, libre office programatically (i.e in C/C++). I know that I have to use some byte type command like putc(..) and getc(). But I don't know the header size of the above mentioned file formats.I saw a list of file format at wikipedia 

<a href="https://en.wikipedia.org/wiki/File_format"></a>
but I
can't see information about the header size. For instance, I know the header size of bmp file=54 bytes.Can some body please guide me any link which tells me this information.

Zulfi. 


Что я уже пробовал:

У меня есть ссылка на Википедию, но я не могу найти размер заголовка в байтах по этой ссылке. Я обнаружил, что размер заголовка bmp =54 байта.

Patrice T

Похоже, это плохое решение для чего-то еще.
В чем причина смены заголовка ?

3 Ответов

Рейтинг:
2

OriginalGriff

На самом деле все не так просто - растровые изображения имеют заголовок фиксированного размера, но не все типы файлов это делают.
Когда вы добавляете, что не все форматы файлов Word одинаковы (DOC - это проприетарный двоичный формат MS, DOCX - это куча XML-файлов, содержащихся в ZIP-архиве), например, и вы действительно ставите перед собой серьезную задачу-предполагая, что то, что вы хотите сделать, даже возможно или хранится в "заголовке файла" - и нет абсолютно никакой гарантии, что если вы "измените заголовок", файл когда-нибудь снова будет работать, а тем более содержать полезные для вас изменения. Например, поскольку DOCX-это ZIP-архив, почти любое изменение в любой точке файла приведет к его повреждению до такой степени, что он вообще перестанет быть читаемым.

Я бы сел, подумал о том, чего вы пытаетесь достичь, и попытался выяснить, что вам нужно выяснить, чтобы сделать это. Предположение, что все форматы файлов содержат заголовок, неверно, и это означает, что вы вообще не знаете достаточно, чтобы выполнить эту задачу. И если честно, твои предыдущие вопросы отчасти подтверждают это...


Рейтинг:
1

zak100

Привет,

Если word невозможен, то как насчет pdf-файлов? Хорошо, если нет файла документа, то я бы сосредоточился на файлах изображений. Если у кого-то есть информация о любом формате файла изображения, который имеет известный размер заголовка.

Есть ли у Блокнота какой-нибудь заголовок?

Зульфи.


Richard MacCutchan

Почти все типы файлов имеют свои собственные форматы заголовков или элементов управления. Вам нужно поискать в Google спецификации для интересующего вас типа. Но, как уже отмечалось, Если вы измените некоторые из контрольных данных, вы вполне можете получить файл, который не читается. И ваш комментарий, что вы можете сделать это с помощью getc и putc предполагает, что у вас нет ничего, приближающегося к уровню опыта, необходимого для того, чтобы сделать это правильно. Но если вы настроены решительно то вот вам справочный документ в формате PDF: https://www.adobe.com/content/dam/acom/en/devnet/pdf/pdfs/PDF32000_2008.pdf[^].

Рейтинг:
0

CPallini

Если вам действительно нужно это сделать, то вам следует изучить соответствующие спецификации формата файла.
Однако это очень сложная задача. Вы можете найти некоторое понимание (и слова предупреждения) по этому поводу PDF связанные страницы: c++ - PDF спецификации для кодеров: Adobe или ISO? - переполнение стека[^].