Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Файловая система
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 17.09.2007, 14:13
Delphinic Delphinic вне форума
Начинающий
 
Регистрация: 20.11.2006
Сообщения: 134
Репутация: 15
По умолчанию TMemoryStream на ходу сбрасывать на хард.

Вообщем у меня аудиорекордер пишет в TmemoryStrem
естесьно забивается память компа и все виснет.
Мне надо как то это дело сразу скидывать в файл.
Тоолько как это организовать грамотно я даже не представляю.
Может у кого пример есть? Или просто в двух словах опишете?
Ответить с цитированием
  #2  
Старый 17.09.2007, 14:32
Аватар для The Shadow
The Shadow The Shadow вне форума
Продвинутый
 
Регистрация: 11.06.2007
Адрес: Уфа, Россия
Сообщения: 793
Репутация: 35
По умолчанию

Попробуй использовать вместо TMemoryStream - TFileStream, а остальное оставить как было.
__________________
Что делать, когда сломался комп:
1. Если вы юзер - делать ноги.
2. Если ремонтник - делать деньги.
3. Если вы программист - делать вид, что так было задумано.
Ответить с цитированием
  #3  
Старый 17.09.2007, 15:38
Delphinic Delphinic вне форума
Начинающий
 
Регистрация: 20.11.2006
Сообщения: 134
Репутация: 15
По умолчанию

Щас поэксперементиру.
Ответить с цитированием
  #4  
Старый 17.09.2007, 19:21
Аватар для zip000
zip000 zip000 вне форума
Начинающий
 
Регистрация: 24.07.2007
Сообщения: 194
Репутация: 25
По умолчанию

Если постоянно сбрасывать данные на хард через TFileStream, то прога будет тормозная (т.к. хард оч медленное устройство). Лучше писать данные в TMemoryStream, а при достижении им определенного размера (несколько мегов например), данные из TMemoryStream записывать на хард с помощью TFileStream :

Код:
var
  f : TFileStream;
  m : TMemoryStream;
..............................
  f := TFileStream.Create('SomeFile', fmOpenWrite); // Сначала создаем и открываем файл в кот. будет производиться запись
..............................
  f.CopyFrom(m, MemoryStreamSize); // Когда необходимо записываем данные в файл
..............................
  f.Free; // Закрываем файл
__________________
Не профи, но и не чайник . D6 - лучше не придумали. Пока.
Ответить с цитированием
  #5  
Старый 17.09.2007, 23:31
Delphinic Delphinic вне форума
Начинающий
 
Регистрация: 20.11.2006
Сообщения: 134
Репутация: 15
По умолчанию

Я сделал чтоб сбрасывалось сразу на хард, вроде работает нормально не глючит. Всем спасибо большое.
Ответить с цитированием
  #6  
Старый 22.09.2007, 16:47
Аватар для The Shadow
The Shadow The Shadow вне форума
Продвинутый
 
Регистрация: 11.06.2007
Адрес: Уфа, Россия
Сообщения: 793
Репутация: 35
По умолчанию

А можно вопрос про запись?
Ты как записываешь звук?
Можешь показать код?
__________________
Что делать, когда сломался комп:
1. Если вы юзер - делать ноги.
2. Если ремонтник - делать деньги.
3. Если вы программист - делать вид, что так было задумано.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

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

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 10:12.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter