Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

TFileStream


brother ©   (2014-05-09 14:37:00) 

Всем доброго времени суток! Что-то я совсем не понял такого поведения:

Так не пишет (MS2.Size = 33014):
FileStream:= TFileStream.Create(FN, fmCreate);
..
if FileStream.Write(MS2, MS2.Size) = 0 then showmessage('!');

для проверки, так пишет:
..
if FileStream.Write(MS2,10000) = 0 then showmessage('!');

ЧЯДНТ?


Condition   (2014-05-09 23:05:00) [1]

1. Если как в [8], то
 ...
 FileStream.WriteBuffer(...);
until nRead < SizeOf(Buffer);

2. А лучше - CopyStream()


brother   (2014-05-09 16:52:00) [2]

да и его можно...
зы. пора пить завязывать)


Rouse__   (2014-05-09 16:51:00) [3]

Че ты мучаешся, CopyFrom и вся не долга :)


brother   (2014-05-09 16:45:00) [4]

или можно SaveToStream использовать...


brother   (2014-05-09 16:32:00) [5]

да я дебил(
вот так надо:
repeat
   nRead:= MS2.Read(buffer, SizeOf(buffer));
   FileStream.Write(Buffer, nRead);
 until nRead = 0;


brother   (2014-05-09 16:23:00) [6]

> MS2.position = ?

в ноль


brother   (2014-05-09 16:23:00) [7]

> при этом куча байтов пишется по адресу, где расположен указатель

где это такое у меня?


MBo   (2014-05-09 15:22:00) [8]

(переменная объекта, а не в Memory стрима)


MBo   (2014-05-09 15:20:00) [9]

это реальный код? ты используешь объектную переменную в качестве нетипизированного параметра. при этом куча байтов пишется по адресу, где расположен указатель


turbouser   (2014-05-09 15:08:00) [10]

MS2.position = ?


brother   (2014-05-09 14:51:00) [11]

MS, MS2: TMemoryStream;

MS:= TMemoryStream.Create;
 MS.Size:= Length(RChannel);
 MS.Write(RChannel[0], Length(RChannel));
 SetLength(RChannel, 0);
...
 MS2:= TMemoryStream.Create;
 Compression(MS, MS2); //33014

...


MBo   (2014-05-09 14:46:00) [12]

что такое ms2?


Наверх

Титульная страница Поиск, карта сайта Написать письмо