Модераторы: feodorv

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как чере сокеты передать файл неизвестного размера, дайте примерчик пожалуйста 
V
    Опции темы
Romikgy
Дата 7.7.2006, 16:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7326
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

Репутация: нет
Всего: 146



Nuzur, 
http://www.google.com/search?q=base64&...p;#038;oe=utf-8

Добавлено @ 16:48 
http://www.delphikingdom.com/asp/viewitem.asp?catalogid=691

 

Это сообщение отредактировал(а) Romikgy - 7.7.2006, 16:49


--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
sergejzr
Дата 7.7.2006, 16:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Un salsero
Group Icon


Профиль
Группа: Админ
Сообщений: 13285
Регистрация: 10.2.2004
Где: Германия г .Ганновер

Репутация: 1
Всего: 360



Гугль даст тебе описание на любом. 
Вообще там ведь две с половиной строчки. и функции уже написаны.

Смысл алгоритма однако такой:
  • представляем весь файл в двоичном виде

    001010101101010100101010010101001010011110
  • разбиваем на части по 6 бит

    001010 101101 010100 101010 010101 001010 011110
  • добавляем 2 нуля спереди каждой части, чтобы получить обратно байт

    00001010 00101101 00010100 00101010 00010101 00001010 00011110
  • Теперь файл состоит только из букв ASCII, никаких "левых" знаков нет
Если число бит не кратное 6, последний хвост кодируется немного подругому. Я уж точно не скажу. там добавляется воскл. знак или знак = навешивается.

Ну при раскодировке делаешь всё наоборот и получаешь исходную комбинацию бит.
 


--------------------
PM WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
Nuzur
Дата 7.7.2006, 17:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1019
Регистрация: 4.7.2004

Репутация: нет
Всего: 5



Цитата(sergej.z @ 7.7.2006,  16:51)
Гугль даст тебе описание на любом. 
Вообще там ведь две с половиной строчки. и функции уже написаны.

Смысл алгоритма однако такой:



  • представляем весь файл в двоичном виде

    001010101101010100101010010101001010011110



  • разбиваем на части по 6 бит

    001010 101101 010100 101010 010101 001010 011110



  • добавляем 2 нуля спереди каждой части, чтобы получить обратно байт

    00001010 00101101 00010100 00101010 00010101 00001010 00011110



  • Теперь файл состоит только из букв ASCII, никаких "левых" знаков нет


Если число бит не кратное 6, последний хвост кодируется немного подругому. Я уж точно не скажу. там добавляется воскл. знак или знак = навешивается.

Ну при раскодировке делаешь всё наоборот и получаешь исходную комбинацию бит.

ЗАМИЧАТЕЛЬНО! Икак это спасет меня от АбсАлютного нуля то?
Идем по алгоритму
у меня есть 2 нуля вподряд тоесть в битах: (пробелы и подчеркивания для добства)
0000 0000 _ 0000 0000 ну и там дальше уже всеравно

кодируем:

00 00 0000 _ 00 0000 00 - два абсолютных нуля в студию, являються обрывом строки все курят всем грустно!

или еще велей было

0000 0011 _ 1010 1010

а стало:

0000 0000 _ 1110 1010

Я покурил такую штуку
http://www.delphikingdom.com/asp/viewitem.asp?catalogid=691
Они тоже про 0 - многозначительно молчат и роздувают щеки, может етот символ ваще не может быть в файле-то? А?
А то другие символы кроме этого меня как-то вообще не торкают и не пугают, только он мерзавец ну ище правда 0хFF...млин 

Это сообщение отредактировал(а) Nuzur - 7.7.2006, 17:53


--------------------
Never again...
PM MAIL   Вверх
Nuzur
Дата 7.7.2006, 17:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1019
Регистрация: 4.7.2004

Репутация: нет
Всего: 5



Потому то и прошу реализацию для файлов, я думаю что там вся ета бяка предусмотрена!

Добавлено @ 17:59 
до меня доперло, просто надо наменять ту функцию которую приводил ув. sergej.z, НО поменять чтоб она вставляла не 00 а 10, например и буду я счастлив!
Если да с меня плюсы smile 


--------------------
Never again...
PM MAIL   Вверх
Nuzur
Дата 13.7.2006, 17:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1019
Регистрация: 4.7.2004

Репутация: нет
Всего: 5



Короче заморачивался, а потом понял что зря  smile 
просто надо было строку представить как void и не морочить голову, а потос сей void и писать в файл заданого размера.
Все-равно всем большое спастбо кто помогал!
Некоторым даже с плюсом!  smile  


--------------------
Never again...
PM MAIL   Вверх
MoZy
Дата 16.7.2006, 19:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 193
Регистрация: 4.6.2006

Репутация: -2
Всего: 0



Цитата(Romikgy @  7.7.2006,  13:55 Найти цитируемый пост)
просто суть в том что в файле который передаеться может быть замечательный символ 0x00 

Не понимаю. Ну и что что 0x00? Посреди файла ведь EOF не встретишь. А пока не встретишь, то можно смело читать. 
--------------------
Experimentia est optima rerum magistra
PM MAIL WWW ICQ   Вверх
Romikgy
Дата 17.7.2006, 08:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7326
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

Репутация: нет
Всего: 146



Цитата(MoZy @  16.7.2006,  18:50 Найти цитируемый пост)
Ну и что что 0x00?

В данном случае сообщение передавалось как строка , а что происходит когда в строке передается ноль? 


--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
gabriil
Дата 20.8.2006, 14:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 17
Регистрация: 13.7.2006

Репутация: нет
Всего: нет



извините но уменя возник вопрос связаный с темой топика,не могли бы вы мне помоч.

http://forum.vingrad.ru/index.php?showtopic=108568
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Сети | Следующая тема »


 




[ Время генерации скрипта: 0.0975 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.