Этот топик читают: Гость
Гость
Ответов: 17029
Рейтинг: 0
|
|||
Редактировалось 2 раз(а), последний 2025-01-09 22:52:04 |
|||
карма: 0 |
|
Ответов: 590
Рейтинг: 19
|
|||
code_11303.txt
вот в принципе и весь поиск по начальному и конечному блоку... при желании можно удалить блоки |
|||
карма: 0 |
| ||
файлы: 1 | code_11303.txt [608B] [212] |
Ответов: 3851
Рейтинг: 159
|
|||
EcsTasY, я не уверен, что сочетание END®B` обязательно встретится только один раз. Мне кажется нужно искать (или вычислять) размер файла в заголовочно-информационной части.
г. Сергей, на вскидку - файл PNG имеет блочную структуру (я рассматривал имеющиеся у меня), размер первого блока указан в 23Н и 24Н байтах, если блок один (файл маленький), то достаточно прибавить 57 и получишь размер файла. Если блоков больше одного (файл большой), то в указанных байтах лежит число 2000Н (8192D - видимо размер начального блока), а дальше ... я не ковырялся ![]() |
|||
карма: 0 |
|
Ответов: 8939
Рейтинг: 824
|
|||
г. Сергей, конечно надо знать формат, проще искать. Но зная символы начала и окончания блоков, тоже можно искать, но дольше продлится этот поиск: читаем по байту, переводим в символы, соединяем последние (в данном случае 6 шт) и сравниваем с маской, при равенстве считываем положение последнего байта маски.
code_11312.txt |
|||
карма: 19 |
| ||
файлы: 1 | code_11312.txt [2.2KB] [250] |
Ответов: 3851
Рейтинг: 159
|
|||
Леонид, то есть, предполагается, что искомое сочетание не может встретиться в теле данных?
|
|||
карма: 0 |
|
Ответов: 8939
Рейтинг: 824
|
|||
Андрей., в теле данных может встретиться что угодно, хотя и с разной вероятностью, на то и делаются N байт в заголовок, чтобы устранить такие ошибки, но как коллега г. Сергей пояснил возникшую задачу, такое и решение
![]() |
|||
карма: 19 |
|
Ответов: 590
Рейтинг: 19
|
|||
Андрей. писал(а): я не уверен, что сочетание END®B` обязательно встретится только один разЯ привел самый простой пример поиск одного блока... вернее ищет то он все... ток выводит самый последний... просто я вчера не мог больше ни чего придумать, тк 2ое суток не спал |
|||
карма: 0 |
|
Ответов: 1161
Рейтинг: 160
|
|||
а не забывайте, что PNG - файл бинарный, и возможно что полученная картинка будет неверно отображаться, т.ч keit все делать в безопасном режиме(в HEX например)
|
|||
карма: 0 |
|
Ответов: 1088
Рейтинг: 112
|
|||
ВОЗМОЖНО, я не прав, но по моему вы маетесь фигней.
Ознакомтесь http://forum.megashara.com/showthread.php?p=196452 |
|||
карма: 0 |
|
Ответов: 3851
Рейтинг: 159
|
|||
EcsTasY писал(а): ищет то он все... ток выводит самый последний...несовсем так - выводит все блоки - где найдёт сочетание, там и выведет: code_11314.txt - легко проверить.. |
|||
карма: 0 |
| ||
файлы: 1 | code_11314.txt [646B] [226] |
Ответов: 590
Рейтинг: 19
|
|||
это если в одной строке... а если в нескольких?) то тогда надо доделывать
|
|||
карма: 0 |
|
Ответов: 3851
Рейтинг: 159
|
|||
EcsTasY писал(а): а если в нескольких? |
|||
карма: 0 |
|
Ответов: 590
Рейтинг: 19
|
|||
а ну да... торможу я...
![]() |
|||
карма: 0 |
|
Гость
Ответов: 17029
Рейтинг: 0
|
|||
Редактировалось 2 раз(а), последний 2025-01-09 22:52:05 |
|||
карма: 0 |
|
Гость
Ответов: 17029
Рейтинг: 0
|
|||
Редактировалось 2 раз(а), последний 2025-01-09 22:52:05 |
|||
карма: 0 |
|