![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
Здраствуйте. помогите пожалуйста сохранить данные находящиеся в Tstream в файл.
проблема вот в чём,файл большого размера,(от 200Мб) а так как TStream не имеет прямой процедуры .SaveToFile то методом пузыря хотел перегнать данные в TMemoryStream и уже сделать .SaveToFile. но в таком случае сильно загружается оперативка. у меня такое видение этого: имеем TStream с данными. и последовательно считываем некое количество данных в буфер и записываем буфер в сохраняемый файл и так пока не достигнем конца Tstream. тем самым не придётся весь файл дублировать во втором стреаме для сохранения. я тут ещё прочитал что с помощью Memory Mapped Files побайтовое чтение можно ускорит - ну это если както пригодится для этой задачи |
|
#2
|
||||
|
||||
|
TStream это базовый класс. с каким конкретно классом-наследником работаешь?
|
|
#3
|
||||
|
||||
|
Код:
var
fs: tfilestream;
begin
fs := tfilestream.create('c:\1.dat', fmCreate);
try
stream.position := 0;
fs.copyfrom(stream, 0 {0 - copy all});
finally
fs.free;
end;
end; |
| Этот пользователь сказал Спасибо M.A.D.M.A.N. за это полезное сообщение: | ||
Snake22 (26.12.2012)
| ||
|
#4
|
|||
|
|||
|
NumLock, незнаю ,это в idhttpserver PostStream такой тип имеет
![]() M.A.D.M.A.N. спасибо буду пробовать |