![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как записать в файл массив размером 8 точек на миллион [D5, D6, D7, Win2k, WinXP]
yuraspb © (2006-11-10 19:06:00)
Страницы: 1 2 3 4 5 6 7 8 9 10 >
Как записать в файл массив размером 8 точек на миллион?
fog (2006-11-16 20:23:00) [1]>Что вы так к этому размеру прицепились.
Дело не в размере, хотя он тоже имеет значение :))
>Созранять нудно подряд все.
Согласен на 100 %.
Есть такое понятие - масштаб. => Так ли жизненнонеобходимо выводить КАЖДУЮ точку? Для примера - любой аудио редактор.
yuraspb (2006-11-16 20:13:00) [2]всё работает )
MikePetrichenko (2006-11-16 19:34:00) [3]
> Интересно, а frminit.Chart1 резиновый? отрисовать 8*100000
> точек в сек.
Ага. А девайс выдает 800000 единиц инфы и все. Потом умирает... Что вы так к этому размеру прицепились.
Созранять нудно подряд все. Потом иметь доступ к сохраненным данным.
А отрисовывать "окно" из этих данных.
Jeer (2006-11-16 18:06:00) [4]
> fog (16.11.06 17:57) [192]
Там много веселого.
fog (2006-11-16 17:57:00) [5]Интересно, а frminit.Chart1 резиновый? отрисовать 8*100000 точек в сек.
Все так увлеклись записью на диск, что про это забыли или забили...
MikePetrichenko (2006-11-16 17:25:00) [6]
> Всем спасибо, Особенно Станиславу, я жду Ваш исходник
var
Data: TFileStream;
AData: Byte; // Seems like device returns byte.
begin
Data := TFileStream.Create('.\data.dat', fmCreate);
While ReadDataFromDevice(AData) do Data.Write(AData);
Data.Free;
end;
Это алгоритм. Полный код - $300
Stanislav (2006-11-16 17:23:00) [7]yuraspb © (16.11.06 17:19) [189]
Я его не сохранил :-)
Примерно так.
a-массив.
...
Var S:TMemoryStream;
Begin
S:=TMemoryStream.Create;
S.Write (a,Sizeof(a));
S.SaveToFile('MyFile.dat');
S.free;
end;
yuraspb (2006-11-16 17:19:00) [8]Всем спасибо, Особенно Станиславу, я жду Ваш исходник
Jeer (2006-11-16 17:18:00) [9]Мужики, да фигню нам тут вешает автор сабжа.
У него явно попытка производить случайные перестановки в чужом коде, до смысла которого мозг не в состоянии дотянуться и получить работающий результат.
Автору сабжа - начать все с нуля и, прежде всего, с описания режимов работы device.
Намек уже давался - читать порциями из АЦП и скидывать в файл(ы), именуя их по дате/времени.
Более того, практически все современные PCI-ADC имеют внутренний буфер определенного объема, что безусловно позволяет снизить частоту чтения и сброса в файл(ы)
ANB (2006-11-16 17:12:00) [10]
> MikePetrichenko © (16.11.06 16:57) [184]
На хорошем компе стрим кэшируется. можно и писать и читать. а на тормозном эту хрень все равно без толку запускать.
Кроме того MMF штука не сильно простая, вряд ли автор ее одолеет.
yuraspb (2006-11-16 17:12:00) [11]
> Stanislav © (16.11.06 16:51) [180]
> У меня через stream все работает, файл получился 64 мб.
>
Станислав спасибо, поделитесь исходниками )
yuraspb (2006-11-16 17:11:00) [12]
> ANB © (16.11.06 16:51) [181]
>
> > yuraspb © (16.11.06 16:38) [176]
>
> 15000 - это евро или баксов ? Я готов за 10000 все сделать.
>
я тебя за бесплатно не возьму
MikePetrichenko (2006-11-16 16:57:00) [13]
> У меня через stream все работает, файл получился 64 мб.
Можно и Stream. Но c Memory Mapped проще потом читать сырые данные из того же файла в который пишем и обрабатывать.
Хотя в данном случае разницы нет.
ANB (2006-11-16 16:54:00) [14]
> Stanislav © (16.11.06 16:51) [180]
> У меня через stream все работает, файл получился 64 мб.
>
Этот балбес до записи в файл и не доходил. Прога падала на входе в процедуру, т.к. он локально объявил слишком здоровый статический массив. А через стрим (как и другими способами) можно без проблем и несколько гигов записать. 64 метра - это не размер.
ANB (2006-11-16 16:52:00) [15]
> Я готов за 10000 все сделать
но в евро
ANB (2006-11-16 16:51:00) [16]
> yuraspb © (16.11.06 16:38) [176]
15000 - это евро или баксов ? Я готов за 10000 все сделать.
Stanislav (2006-11-16 16:51:00) [17]У меня через stream все работает, файл получился 64 мб.
Anatoly Podgoretsky (2006-11-16 16:42:00) [18]> Андрей Сенченко (16.11.2006 16:36:54) [174]
Устаем
Anatoly Podgoretsky (2006-11-16 16:41:00) [19]> Плохиш (16.11.2006 16:31:49) [169]
Рано, вот уже и код стал приводить, только зубы показывает.
Anatoly Podgoretsky (2006-11-16 16:41:00) [20]> Андрей Сенченко (16.11.2006 16:29:46) [166]
Все мы случайно напоролись, кто же знал, что здесь мины.