979 / 196 / 33
Регистрация: 26.09.2012
Сообщений: 2,041
|
|
1 | |
Размер строки в бинарном режиме!27.10.2013, 22:47. Показов 2210. Ответов 13
Метки нет (Все метки)
Здорова господа!!!
Имеется строка типа string в которую считано изображение. Как можно узнать сколько будет эта же строка занимать в бинарном режиме???
0
|
27.10.2013, 22:47 | |
Ответы с готовыми решениями:
13
Чтение строки в бинарном режиме Запись в файл в бинарном режиме Запись char в бинарном режиме Чтение файлов в бинарном режиме |
383 / 281 / 31
Регистрация: 04.09.2009
Сообщений: 1,225
|
|
27.10.2013, 22:55 | 2 |
sizeof ?
std::string::size() ?
1
|
979 / 196 / 33
Регистрация: 26.09.2012
Сообщений: 2,041
|
|||||||||||
27.10.2013, 23:28 [ТС] | 4 | ||||||||||
Это не тут, это просто размер объекта string s;
Нужно правильно если узнать размер данных которые имеются в строке так записывать:
Тут видно что lSize - это размер файла в бинарном режиме и видно что он громадный. Добавлено через 6 минут У меня есть строка в которой я считал с интернета изображение, от мне нужно ее обработать с помощью библиотеки gdlib, но что бы в нее записать мне нужно это сделать через буфер, это строку нужно кинуть в поток, включить бинарный режим, либо записывать в файл, считывать в бинарном режиме, считать сколько она занимает размер в потоке, выделить буфер нужного размера, из потока записать в этот буфер и передать функцие, обрабатывать потом с помощью функций библиотеки. Тот код что у меня выше работает, но у меня исходно изображения в виде строки это мне придется каждый раз что бы создавать буфер записывать эту строку в файл, потом считывать ее в бинарном режиме, а мне хочеться как то попроще сразу эту строку как то в бинарный режим перевести.
0
|
gromo
|
27.10.2013, 23:28
#5
|
1
|
979 / 196 / 33
Регистрация: 26.09.2012
Сообщений: 2,041
|
|
27.10.2013, 23:31 [ТС] | 6 |
Ладно щас попробую в обычном режиме символьном создать буфер мб и получиться, щас считаю строку попробую, да что пробовать я уверен не получиться ничего, нужно изображения записывать и считывать только в бинарном иначе все изображение портиться.
Добавлено через 1 минуту Не ну я сам не знаю как оно на самом деле, мб что и приврал, но думаю так должно быть.
0
|
Игогошка!
1801 / 708 / 44
Регистрация: 19.08.2012
Сообщений: 1,367
|
|
27.10.2013, 23:31 | 7 |
С чего ты взял, что это строка какая-то? По мне - это тупо набор байт. Поэтому и выводит, и показывает, что длина 7 символов - потому что просто в этом бинарном потоке 7ой байт нулевой.
0
|
979 / 196 / 33
Регистрация: 26.09.2012
Сообщений: 2,041
|
|
27.10.2013, 23:38 [ТС] | 8 |
Да понятно не трудно догадаться там же память выделяется под 2k с чемто байт.
Добавлено через 1 минуту Ой не байт, а скорее бит malloc вроде размер в битах принимает, но это не важно. Добавлено через 53 секунды Или хз. Добавлено через 2 минуты Вообще то у меня изображение копируется с помощью curl, и чото мне кажется не в бинарную строку. Щас еще посмотрю, мб оно и так у меня буфер уже есть готовый не обычная строка.
0
|
Игогошка!
1801 / 708 / 44
Регистрация: 19.08.2012
Сообщений: 1,367
|
|
27.10.2013, 23:43 | 9 |
Не по теме: За такое на собеседованиях бить будут. Может даже ногами. Думаешь, что в обычную строку? Типа "это яблоко"?
0
|
programina
|
27.10.2013, 23:43
#10
|
1
|
979 / 196 / 33
Регистрация: 26.09.2012
Сообщений: 2,041
|
|
28.10.2013, 00:03 [ТС] | 11 |
Текст же считывает в обычную, я так же само как и html страницы читаю с теми же опциями и изображение, щас вроде там можно установить бинарный режим, да походу изображение считывается в обычном режиме, потому что мне что бы оно отображалось приходиться записывать в бинарном режиме в файл, я ж думаю если б строка была б бинарной, то она б в обычном режиме записалась как в бинарном и изображение отображалось, а так оно не отображается, да я честно сам незнаю что куда, а так если прикинуть, оно б в обычном когда записывало бинарную строку, то 0 бы встретило и все кусок только б записало, остальное откинуло, да и вообще ничего не понятно.
Добавлено через 11 минут Ладно не буду я шарить время тратить, просто буду записывать во временный файл какой нить считывать в нужном режиме обработать а потом уже думать сохранять его или нет. Время не охота терять на эти мелочи, главно что бы работало хоть и с лишними операциями, я так думал что избавлюсь от копирования считал проверил записал и программа будет быстрее работать, а оно оказалось еще замедлиться в половину .
0
|
coloc
|
28.10.2013, 00:20
#12
|
Не по теме: programina, Не спорьте с гуру С++. Он лучше вас знает, что где хранить
0
|
979 / 196 / 33
Регистрация: 26.09.2012
Сообщений: 2,041
|
|
28.10.2013, 00:20 [ТС] | 13 |
Да нет все таки нужно без копирования обойтись, у меня все изображения считывает примерно если 300 статей парсишь, то 1Гб изображений получается 7-10к изображений, нафиг оно мне нада, а если я с этим промежуточным копированием делать буду, то получиться 7-10к изображений перекопирует во временную переменную и плюс нужные, это время возрастет сильно.
0
|
979 / 196 / 33
Регистрация: 26.09.2012
Сообщений: 2,041
|
|
28.10.2013, 01:35 [ТС] | 14 |
Ладно я щас реальный кусок программы покажу с разными вариантами, посмотрите что можно сделать, щас выделю кусок кода рабочий и покажу где нужно улучшить.
Добавлено через 1 час 4 минуты О вроде заработало, но как работает не понятно, ну фиг с ним.
0
|
28.10.2013, 01:35 | |
28.10.2013, 01:35 | |
Помогаю со студенческими работами здесь
14
Чтение из файла в бинарном режиме Открытие файла в бинарном режиме Открытие файла в бинарном режиме Чтение в бинарном режиме из файла Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |