4 / 4 / 2
Регистрация: 18.07.2013
Сообщений: 45
|
||||||
1 | ||||||
fread или как отправить файл по сети28.10.2013, 01:08. Показов 1867. Ответов 25
Метки нет (Все метки)
Доброго времени суток. Есть задача: отправить .jpg файл по http. Как я понял мне надо сделать массив char заполнить его содержимым файла и собственно отправить. Использую для этого функцию fread(). Проблема: функция fread() копирует все символы до первого "\0" (увидел это в дебаге), и копируются только первые 6 байт. Через блокнот удалил этот символ из файла, и стало копироваться как надо, но это не устраивает. Прочитал что "\0" влияет только на printf, но в моем случае не только. Так же пробовал fscanf, fgets один и тот же результат. Заранее благодарю.
0
|
28.10.2013, 01:08 | |
Ответы с готовыми решениями:
25
Как отправить файл на сервер сайта или на почту? Как отправить/получить файл на ftp из VBA или VBS Отправить компьютер в сон или ждущий режим по сети Ошибка Warning: fread() [function.fread]: Length parameter must be greater than 0 |
5498 / 4893 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
|
|
28.10.2013, 01:16 | 2 |
Тут что-то другое. Бинарное чтение: сколько написано байтов прочитать, столько должно и прочитать, если только байты не кончатся или ошибка не произойдёт.
Добавлено через 3 минуты Что за ZeroMemory() ? Добавлено через 38 секунд Файл Picture.jpg выложите.
0
|
4 / 4 / 2
Регистрация: 18.07.2013
Сообщений: 45
|
|
28.10.2013, 01:25 [ТС] | 3 |
Попробовал на других картинках(bmp), тоже самое. Может есть какой другой способ работы с файлом?
0
|
4 / 4 / 2
Регистрация: 18.07.2013
Сообщений: 45
|
|
28.10.2013, 01:30 [ТС] | 5 |
Вот изображение для примера
0
|
4 / 4 / 2
Регистрация: 18.07.2013
Сообщений: 45
|
|
28.10.2013, 01:31 [ТС] | 6 |
Извиняюсь за задержку, при открытии "rb" тоже самое, но где-то встретилось, что лучше использовать "r"
0
|
5498 / 4893 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
|
|
28.10.2013, 01:37 | 7 |
Примеры мне не нужны, мне файл нужен для проверки. Который я использую, ваш код (с rb) считывает полностью.
Для бинарного чтения? В морду плюньте тому, кто это посоветовал. Что тоже самое? Откуда видите? Как проверяете? Добавлено через 3 минуты ???
0
|
4 / 4 / 2
Регистрация: 18.07.2013
Сообщений: 45
|
|
28.10.2013, 01:37 [ТС] | 8 |
Проблема в том, что у меня с этого файла считывается только заголовок "яЩая"
0
|
4 / 4 / 2
Регистрация: 18.07.2013
Сообщений: 45
|
|
28.10.2013, 01:39 [ТС] | 10 |
ZeroMemory просто для очистки, в дебаге просматриваю: из jpg файлов копируеься "яЩая", из bmp "BM6"
0
|
5498 / 4893 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
|
||||||
28.10.2013, 01:40 | 11 | |||||
Вот код и результат чтения файла .jpg, размером 942994 байта. Как видите, все байты считаны.
0
|
4 / 4 / 2
Регистрация: 18.07.2013
Сообщений: 45
|
|
28.10.2013, 01:40 [ТС] | 12 |
Проблема в том, что вы на вопросы не отвечаете...
-- Навожу на переменную buffer курсор и мне показывается текущее значение
0
|
4 / 4 / 2
Регистрация: 18.07.2013
Сообщений: 45
|
|
28.10.2013, 01:43 [ТС] | 14 |
Я вижу, что вы размер файла вывели. Размер считывается и у меня правильно, а вот в buffer записывается только начало.
0
|
5498 / 4893 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
|
|
28.10.2013, 01:47 | 15 |
Выводится количество того, что считано в buffer, а не размер файла. Установите текстовый режим и увидите совсем другое число. Вы уверены, что правильно смотрите buffer? Это же не текст читался, а байты. Что вы там хотите увидеть? Буковки?
0
|
4 / 4 / 2
Регистрация: 18.07.2013
Сообщений: 45
|
|
28.10.2013, 01:48 [ТС] | 16 |
Файл использую, который уже выложил, код написан в первом посте.
Добавлено через 28 секунд Хотелось бы хотя бы буковки.
0
|
5498 / 4893 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
|
|
28.10.2013, 01:50 | 17 |
И покажите код ZeroMemory(). Как вы там и что чистите?
Добавлено через 34 секунды В каком посте? Добавлено через 44 секунды А вы знаете, что не все значения в байтах можно представить в виде буковок?
0
|
4 / 4 / 2
Регистрация: 18.07.2013
Сообщений: 45
|
|
28.10.2013, 01:51 [ТС] | 18 |
0
|
4 / 4 / 2
Регистрация: 18.07.2013
Сообщений: 45
|
|
28.10.2013, 01:52 [ТС] | 20 |
сделал sizeof(buffer)
в результате получил 4 Сейчас сделаю скриншот
0
|
28.10.2013, 01:52 | |
28.10.2013, 01:52 | |
Помогаю со студенческими работами здесь
20
Сокеты, отправить файл или текст с одного компьютера на другой Как отправить сообщение по сети через терминал? Fread неправильно считывает файл Бинарный файл не читается fread() Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |