Re: Проблема: сложить разные типы
От: AndrewJD США  
Дата: 02.04.05 13:00
Оценка:
Здравствуйте, khatsko, Вы писали:

K>Необходимо считать бинарный файл из интернета, с открытием файла проблем нет (проблема похоже с преобразованием типов). Вот код:


K>#define HTTPBUFLEN 512 // Size of HTTP Buffer...

K>char httpbuff[HTTPBUFLEN];

K>CString strbuffer = "";

K>CInternetSession mysession;
K>CStdioFile *remotefile = mysession.OpenURL(_szurl,1,INTERNET_FLAG_TRANSFER_BINARY|INTERNET_FLAG_RELOAD); // файл открылся нормально


K>Проблема вот в чем: по numbytes видно что считывается по 512 байт, однако к strbuffer буфер прибавляется не 512 байт а разное число байт: 4, 2, 6, 8, 16 и дальше в разброс. Почему так?


А чего ты хотел? Ты считывешь файл как бинарный и пытаешься добавить его в текстовую строку . На первом же нуле добавление в строку обломится. Используй другой контейнер для хранения данных типа CArray или std::vector<char>

K>И еще вопрос: CInternetFile::GetLength() не всегда возвращает реальный размер файла, говорят это из-за того, что весь WinInet — это глюк на глюке.

Обычно говорят те кто в нем не разбирается
"For every complex problem, there is a solution that is simple, neat,
and wrong."
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.