![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
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?