Компьютерный форум
Правила
Вернуться   Компьютерный форум > Форум программистов > Технологии программирования > Сетевое программирование
Перезагрузить страницу Размер файла при передаче
Закрытая тема
 
Опции темы Опции просмотра
  (#1 (permalink)) Старый
kipwoker kipwoker вне форума
Новичок
 
Сообщений: 8
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 29.04.2009
По умолчанию 29.04.2009, 20:52

Добрый вечер, есть вот такой код, программа будет передавать файлы:
Код:
TMemoryStream *MSS = new TMemoryStream;

...

void __fastcall TMain::Button2Click(TObject *Sender)
{
        void *P;   
        long Size;
        if( OpenDialog1->Execute() )
        {
            MSS->LoadFromFile( OpenDialog1->FileName ); 
            Memo1->Lines->Add( "Загрузили файл в поток..." );
        }
        Server->Socket->Connections[0]->SendText( "file#" + OpenDialog1->FileName + "#" + IntToStr( MSS->Size ) + "#" );
        

        Memo1->Lines->Add ( "Послали заголовок" );
        MSS->Position = 0;      
        P    = MSS->Memory;     
        Size = Server->Socket->Connections[0]->SendBuf( P , MSS->Size );               
        AnsiString ValP, ValA;
        int SizeP;
        int SizeA;
        f_Size(Size,MSS->Size,SizeP,SizeA,ValP,ValA);                                                                
        Memo1->Lines->Add( "Получено: " + IntToStr( SizeP ) + ValP + "из " + IntToStr( SizeA ) + ValA); 
}

...
Лишнее не пишу, только что касается сути вопроса. Итак, у меня имеется переменная Size типа long, но т.к. размер файла передается в байтах, то больше 100 Мб примерно я передать не могу, потому что в переменную не влазит, тогда есть аткая идея разбить число и кусками запихать в массив, например так (1042410512587 байт) --> (a[0] = 87; .. ; a[n] = 10). Но возникает вопрос, как быть с MSS->Size?
  (#2 (permalink)) Старый
Влад Влад вне форума
Специалист
 
Сообщений: 3,884
Сказал(а) спасибо: 1
Поблагодарили 25 раз(а) в 25 сообщениях
Регистрация: 27.06.2002
Адрес: Санкт-Петербург
По умолчанию 30.04.2009, 14:16

Открой для себя числа типа long long или __int64.... - что конкретно есть в твоем компиляторе? Ну или на худой конец используй структуру LARGE_INTEGER, доступную во всех версиях Windows (#include <winnt.h>).


The difference between theory and practice is that in theory, there is no difference between theory and practice, but in practice, there is.
  (#3 (permalink)) Старый
kipwoker kipwoker вне форума
Новичок
 
Сообщений: 8
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 29.04.2009
По умолчанию 02.05.2009, 14:02

Окей, спасибо.
  (#4 (permalink)) Старый
kipwoker kipwoker вне форума
Новичок
 
Сообщений: 8
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 29.04.2009
По умолчанию 08.05.2009, 08:02

Блин, если Size делать long long, например, то и в классе TMemoryStream Size надо делать long long, как это безболезненно сделать?
Ads
Закрытая тема

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Максимальный размер файла Cyclamen Persicum Delphi 4 28.02.2011 12:23
Размер файла при передаче на другой компьютер kipwoker C++ Builder 9 14.05.2009 13:30
как уменьшить размер Mp3 файла? Big Mountain Софт и программы 6 18.02.2008 02:58
Размер длинного файла Cyclamen Persicum Delphi 15 14.01.2008 06:12
Как узнать размер файла _kT DHTML, JavaScript, VBScript 1 08.11.2007 11:47
Большой размер файла в Qt a_dergachev Trolltech Qt 3 25.09.2007 21:41
как уменьшить размер Mp3 файла? Julia Ivvv Софт и программы 4 15.05.2007 07:46
Как узнать размер файла Cmet Visual C++ 15 07.08.2006 18:35
Как определить размер файла Garik888 Delphi 3 30.08.2004 01:32
Размер EXE файла в C++ Builder 6.0 Rem C++ Builder 1 24.05.2004 11:21
Установка размер exe файла Deito C++ Builder 0 21.03.2004 10:30
Как определить размер файла на FTP Hans C++ Builder 4 15.03.2004 10:40



Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Нardforum.ru - компьютерный форум и программирование, форум программистов