Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2006.12.03;
Скачать: [xml.tar.bz2];

Вниз

Как записать в файл массив размером 8 точек на миллион   Найти похожие ветки 

 
yuraspb ©   (2006-11-10 19:06) [0]

Как записать в файл массив размером 8 точек на миллион?


 
Ketmar ©   (2006-11-10 19:10) [1]

точно так же, как 2x2.


 
Percent   (2006-11-10 19:10) [2]

массив размером 8 точек на миллион

О! Новая единица размерности массива - точка!


 
Jeer ©   (2006-11-10 19:24) [3]

Percent   (10.11.06 19:10) [2]

Я присел - 8 точек на миллион type Extended (к примеру) ... не, сегодня не удается посчитать.


 
yuraspb ©   (2006-11-10 19:28) [4]

примеры товарищи, примеры )


 
yuraspb ©   (2006-11-10 19:29) [5]

Percent - шутник просто ужассс )
Ketmar - мозг


 
Anatoly Podgoretsky ©   (2006-11-10 19:34) [6]

> yuraspb  (10.11.2006 19:06:00)  [0]

Записать миллион раз по 8 точек
или один раз, но сразу миллион.
А тебе все равно как, например так write(F, buf, 1)


 
Anatoly Podgoretsky ©   (2006-11-10 19:36) [7]

> Jeer  (10.11.2006 19:24:03)  [3]

Почему Extended, а не аrray of Point3d?


 
Anatoly Podgoretsky ©   (2006-11-10 19:37) [8]

Тебя куда - в Начинающие, в Прочее или в Корзину?


 
yuraspb ©   (2006-11-10 19:37) [9]

У меня массив array[1..8,1..1000000] of real


 
Anatoly Podgoretsky ©   (2006-11-10 19:37) [10]

Давай сначала попробуем с Начинающие, там посмотрим


 
Anatoly Podgoretsky ©   (2006-11-10 19:41) [11]

real какой? А это тип или переменная?
Допустим современный, тогда это 64 мб.

Пиши как посоветовал Write(F, Buf, 1) наиболее подходящее, только тип, переменную и файл создай должного типа.


 
Anatoly Podgoretsky ©   (2006-11-10 19:42) [12]

Кстати тебе ко мне на сайт или на Королевство за статьей "Файлы Паскаля", приводить ее тут полностью не стоит.


 
vopros   (2006-11-10 19:49) [13]

Господин местный Босс,

Во-первых у Вас отличный сайт, но вот форум...
1. Почему главная цель половины народу - постебаться?
2. Почему нельзя изменять и удалять свои сообщения?
3. Почему не взять современный дизан?


 
yuraspb ©   (2006-11-10 19:50) [14]

cсылочку киньте плиз


 
Джо-со-смарта   (2006-11-10 19:55) [15]

Насчет п. 2, 3. Есть хорошая пословица насчет своего самовара в Туле.


 
Percent   (2006-11-10 19:56) [16]

У меня массив array[1..8,1..1000000] of real

Если не секрет, для чего такое "чудо" надо?


 
Anatoly Podgoretsky ©   (2006-11-10 19:56) [17]

> vopros  (10.11.2006 19:49:13)  [13]

Вообще то цель не постебаться, а так попутно и не постебаться, а поприкалываться.
С остальным во первых не сюда, во вторых не на форумы


 
Percent   (2006-11-10 19:58) [18]

Я присел - 8 точек на миллион type Extended (к примеру) ... не, сегодня не удается посчитать

В стэке... (голова кружиццо...)...


 
Anatoly Podgoretsky ©   (2006-11-10 20:00) [19]


> Если не секрет, для чего такое "чудо" надо?

Не сображаешь? Это же 8 мегапикселей, а ну быстро на рекламные сайты, ищи у кого 8 мегапикселей.


 
Percent   (2006-11-10 20:02) [20]

Фотоаппарат! Угадал?!


 
MikePetrichenko ©   (2006-11-10 20:07) [21]


> У меня массив array[1..8,1..1000000] of real
>
> Если не секрет, для чего такое "чудо" надо?

Круто. Это, если я не ошибаюсь? 64000000 байт (поправьте, посчитал real как 8 байт). Куда же жто все в стек то?


 
Anatoly Podgoretsky ©   (2006-11-10 20:09) [22]

> Percent  (10.11.2006 20:02:20)  [20]

Не знаю я ответа, но 8 мегапикселей, на фотоаппарат не похоже, зачем иначе real, правда может он с типом ошибся, про графику например начитался, а там норма реальные числа. Кто его знает он же про все упорно молчит.


 
Percent   (2006-11-10 20:13) [23]

зачем иначе real

Чиста для real"ного фотоаппарата... для реальных пацанов! :-)

Или он читает какие-то данные с восьми каналов.
А это - массив для хранения.
С запасом.
Кхм...


 
Ketmar ©   (2006-11-10 20:30) [24]

>[13] vopros 10-Nov-2006, 19:49
почему бы тебе не пойти нафиг. на другой форум. пришёл, понимаешь, тупит, ещё и возмущается. сгинь.


 
@!!!ex   (2006-11-10 22:08) [25]


> vopros   (10.11.06 19:49) [13]
> Господин местный Босс,
>
> Во-первых у Вас отличный сайт, но вот форум...
> 1. Почему главная цель половины народу - постебаться?
> 2. Почему нельзя изменять и удалять свои сообщения?
> 3. Почему не взять современный дизан?

1) Потому что достает тупо отвечать на одни и теже банальные вопросы по 7 раз в неделю.
2) Слово не воробоей...
3) На вкус и цвет...


 
SergP ©   (2006-11-11 06:22) [26]

> 3. Почему не взять современный дизан?


А это что значит? Ну "дизан" - это вроде как "дизайн" с ошибкой.
Вот что значит "современный"? А здесь какой?


 
Anatoly Podgoretsky ©   (2006-11-11 11:39) [27]

а больше на диван похоже и с современым русским языком порядок

Современный диван


 
SergP ©   (2006-11-11 13:14) [28]

> > 3. Почему не взять современный дизан?


Кстати если взять то что вы понимаете под "современным дизайном" то посещение форума значительно сократится. Ибо под "современным дизайном" обычно подразумевается никому не нужное значительное увеличение размеров контента. Здесь люди общаются. И мне например важна информация, а не всякие там картинки и прочие "красоты". А за лишний трафик мне платить не особо хочется. Да и серверу лишний трафик тоже не пойдет на пользу.
ИМХО.


 
yuraspb ©   (2006-11-13 10:59) [29]

Это действительно данные с 8 каналов АЦП.
Их нужно както сохранять и загружать.


 
Jeer ©   (2006-11-13 11:08) [30]


> Их нужно както сохранять и загружать.
>


1. Нам не нужно.
2. Разберись с чтением/записью текстового файла, например.
3. Разберись с преобразованием FloatToStr(..)
4. Разберись с обращением к элементам массива по индексам.


 
Anatoly Podgoretsky ©   (2006-11-13 11:18) [31]


> Это действительно данные с 8 каналов АЦП.

И что данный АЦП выдает данные в Real?
Кроме того ответ ты давно получил, даже с кодом
write(F, buf, 1)
Этого достаточно для записи одной командой сразу весь массив.


 
saxon   (2006-11-13 11:18) [32]


> @!!!ex   (10.11.06 22:08) [25]

Так вот кто тут "Господин местный Босс". :)


 
Anatoly Podgoretsky ©   (2006-11-13 11:22) [33]

> Jeer  (13.11.2006 11:08:30)  [30]

И пусть сходит статью почитает, для того и писалось.


 
vopros   (2006-11-13 17:14) [34]


> почему бы тебе не пойти нафиг. на другой форум. пришёл,
> понимаешь, тупит, ещё и возмущается. сгинь.

тебя никто не спрашивал !


 
Ketmar ©   (2006-11-13 17:33) [35]

>[34] vopros 13-Nov-2006, 17:14
>тебя никто не спрашивал !
а-я-яй, какие мы грозные. неко, не зуди. твои публичные испражнения скучны.


 
yuraspb ©   (2006-11-13 17:55) [36]


> И что данный АЦП выдает данные в Real?
> Кроме того ответ ты давно получил, даже с кодом
> write(F, buf, 1)
> Этого достаточно для записи одной командой сразу весь массив.
>
> <Цитата>


Сделал как Вы сказали:

// &#231;&#224;&#239;&#232;&#241;&#252; &#244;&#224;&#233;&#235;&#224;
Tal = record
 name: string[20]; // &#241;&#242;&#240;&#224;&#237;&#224;
 m:array[1..8,1..1000000] of integer;

end;

var
 Form1: TForm1;
  f: file of Tal; // &#244;&#224;&#233;&#235; &#231;&#224;&#239;&#232;&#241;&#229;&#233; - &#225;&#224;&#231;&#224; &#228;&#224;&#237;&#237;&#251;&#245;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);

var
al: Tal;
begin

{ Seek(f, FileSize(f)); // &#243;&#234;&#224;&#231;&#224;&#242;&#229;&#235;&#252; &#231;&#224;&#239;&#232;&#241;&#232; &#226; &#234;&#238;&#237;&#229;&#246; &#244;&#224;&#233;&#235;&#224;  }

assignFile(f, "c:\als.db");

 if FileExists("c:\als.db") then
   reset(f)
 else
   rewrite(f);

with al do
begin

 m[1,100]:=324;
 name:="sdfsdf";

end;
write(f, al); // &#231;&#224;&#239;&#232;&#241;&#224;&#242;&#252; &#241;&#238;&#228;&#229;&#240;&#230;&#232;&#236;&#238;&#229; &#239;&#238;&#235;&#229;&#233; &#231;&#224;&#239;&#232;&#241;&#232; &#226; &#244;&#224;&#233;&#235;
end;

end.

пишет stack overflow


 
yuraspb ©   (2006-11-13 17:56) [37]

ставлю 10000 всё работает


 
Jeer ©   (2006-11-13 18:00) [38]

Ставь.
Также срочно сообщи место получения.
И попробуй не то поставь - вернем все взад.


 
yuraspb ©   (2006-11-13 18:02) [39]

32k максимум, кто знает ответ что делать ?


 
Jeer ©   (2006-11-13 18:11) [40]

Двойка.

Определись с типом файла, в которых хочешь писать.


 
ANB ©   (2006-11-13 18:16) [41]


> 32k максимум, кто знает ответ что делать ?

Проблема не в записи в файл, а в том, что у тебя массив в стек не лезет.
Чего ты в нем хранить то собрался ?
ЗЫ. Кстати, нафиг нафиг современные дизайны. Я из-за него на королевство делфи по большей части и не хожу.


 
Percent   (2006-11-13 18:19) [42]

32k максимум, кто знает ответ что делать ?

Тебе не хватает памяти, а точнее - стека.

Есть несколько вариантов:
- установить в систему 2 ГБайта памяти;
- увеличить размер стека;
- размещать массив не в стеке;
- повесиццо.

Два варианта правильные, два - неправильные.
Выбор - за тобой.


 
Anatoly Podgoretsky ©   (2006-11-13 18:20) [43]

> yuraspb  (13.11.2006 18:02:39)  [39]

Не 32 К, а 64 мб


 
yuraspb ©   (2006-11-13 18:21) [44]


> у тебя массив в стек не лезет.

что нужно поменять ?


 
Percent   (2006-11-13 18:22) [45]

что нужно поменять ?

Голову.


 
yuraspb ©   (2006-11-13 18:24) [46]

Percent - шутник просто ужассс ) все лежат под столом )) ты у Регины Дубовицкой не подрабатываешь? стиль чётко прослеживается.


 
yuraspb ©   (2006-11-13 18:26) [47]

Anatoly Podgoretsky, если это так просто Вы не могли бы написать что не так.


 
Anatoly Podgoretsky ©   (2006-11-13 18:26) [48]

> ANB  (13.11.2006 18:16:41)  [41]

А еще и потому что там NNTP нет


 
Anatoly Podgoretsky ©   (2006-11-13 18:31) [49]

> Percent  (13.11.2006 18:19:42)  [42]

Я знаю, какой один ответ правильный!


 
Anatoly Podgoretsky ©   (2006-11-13 18:31) [50]

> yuraspb  (13.11.2006 18:24:46)  [46]

> ты у Регины Дубовицкой не подрабатываешь?

Ну место занято.


 
Anatoly Podgoretsky ©   (2006-11-13 18:32) [51]

> yuraspb  (13.11.2006 18:26:47)  [47]

А зачем, все уже много раз написано.


 
yuraspb ©   (2006-11-13 18:33) [52]

Люди, кто-нибудь может написать какую сточку на что заменить?


 
ANB ©   (2006-11-13 18:36) [53]


> Люди, кто-нибудь может написать какую сточку на что заменить?

Заменить надо все строчки. А на что - это надо думать и стоит денег. К тому же никто не понял, что тебе надо (так может и на халяву бы написали).


 
MikePetrichenko ©   (2006-11-13 18:38) [54]

Нет. DNK еще не доконца расшифровали.


 
yuraspb ©   (2006-11-13 18:40) [55]

ANB, представь массив array[1..10,1..1000000] of integer;
мне нужно записывать его в файл и считывать из файла.
Тут уже 2 дня никто не знает как это сделать.


 
Percent   (2006-11-13 18:42) [56]

Я знаю, какой один ответ правильный!

Эх, а ведь давал же я ему шанс. А он не воспользовался...


 
MikePetrichenko ©   (2006-11-13 18:44) [57]


> ANB, представь массив array[1..10,1..1000000] of integer;
>  

Читай многопостов выше про стек
Потом читай много статей в MSDN, книгах и прочем про Memory Mapped Files.
Когда надмозг обогатится информацией и станет мозгом - придет очевидное и простое решение.


 
Percent   (2006-11-13 18:44) [58]

Тут уже 2 дня никто не знает как это сделать

Э, Юра, не перекладывай с больной головы на здоровую.
Это ты уже третий день не можешь корректно вопрос задать.


 
Anatoly Podgoretsky ©   (2006-11-13 18:50) [59]

> yuraspb  (13.11.2006 18:40:55)  [55]

Это уже всего лишь 40 мб
Думаешь не знаем, ну тогда не тяжело повторить Write(F, Buf);


 
MikePetrichenko ©   (2006-11-13 18:54) [60]


> Write(F, Buf);

Размер забыл :)


 
Ketmar ©   (2006-11-13 18:57) [61]

>[60] MikePetrichenko(c) 13-Nov-2006, 18:54
>Размер забыл :)
да какая разница...


 
MikePetrichenko ©   (2006-11-13 19:01) [62]


> да какая разница...

В данном случае, вообще никакой. :)
Все равно результата не будет...


 
Ketmar ©   (2006-11-13 19:02) [63]

>[62] MikePetrichenko(c) 13-Nov-2006, 19:01
и я на это намекал. %-)


 
Anatoly Podgoretsky ©   (2006-11-13 19:04) [64]

> MikePetrichenko  (13.11.2006 18:54:00)  [60]

Для типизированого файла?
Могу привести и для нетипизированого, точнее раньше приводил


 
Anatoly Podgoretsky ©   (2006-11-13 19:04) [65]

> Ketmar  (13.11.2006 18:57:01)  [61]

Разница есть, для типизированого файла размер не применим.


 
Anatoly Podgoretsky ©   (2006-11-13 19:05) [66]

> MikePetrichenko  (13.11.2006 19:01:02)  [62]

С этим согласен


 
MikePetrichenko ©   (2006-11-13 19:07) [67]


> Для типизированого файла?

Я имел ввиду общий случай (не типизированный файл). Так как надмозга явно недостаточно чтобы определить типизированный файл для данного массива.


 
Ketmar ©   (2006-11-13 19:10) [68]

чуше бы чем трепаться книжку мне помогли найти.
%-)


 
Ketmar ©   (2006-11-13 19:10) [69]

блин. "лучше".


 
Anatoly Podgoretsky ©   (2006-11-13 19:11) [70]

> MikePetrichenko  (13.11.2006 19:07:07)  [67]

Тогда с нетипизированым он вообще погибнет


 
Anatoly Podgoretsky ©   (2006-11-13 19:13) [71]

> Ketmar  (13.11.2006 19:10:08)  [68]

Его послали на статью именно по этому вопросу, чего еще надо, в сконцентрированом виде.


 
MikePetrichenko ©   (2006-11-13 19:13) [72]


> чуше бы чем трепаться книжку мне помогли найти.

А еще лучше, поскажите WiFI USB Dongle. (Нифига в сием направлении не шарю... Но очень нужно.)


> Тогда с нетипизированым он вообще погибнет

Судя по всему - уже случилось


 
ANB ©   (2006-11-13 19:15) [73]


> ANB, представь массив array[1..10,1..1000000] of integer;
>  
> мне нужно записывать его в файл и считывать из файла.
> Тут уже 2 дня никто не знает как это сделать.

Лучшее решение - не заводить такой здоровый массив. Да еще статичести, т.е. напрямую в стек. Даже если ты уберешь запись в файл, у тебя программа работать не будет.


 
Ketmar ©   (2006-11-13 19:29) [74]

>[71] Anatoly Podgoretsky(c) 13-Nov-2006, 19:13
>Его послали на статью именно по этому вопросу, чего еще
>надо, в сконцентрированом виде.
да он пусть идёт куда угодно. а мне книжка нужна. %-)


 
Anatoly Podgoretsky ©   (2006-11-13 19:52) [75]

> Ketmar  (13.11.2006 19:29:14)  [74]

Это правильно, пусть идет


 
yuraspb ©   (2006-11-14 00:57) [76]

ANB, спасибо !!!!
Как это можно обойти? мне действительно нужно столько объектов.


 
fog   (2006-11-14 01:13) [77]

2 yuraspb
объясни, доступно, зачем тебе снимать 8 каналов с АЦП по 1 млн. точек - эт прим. 27.8 часов при 10 Гц на канал


 
yuraspb ©   (2006-11-14 01:57) [78]

у меня 100кГц


 
Ketmar ©   (2006-11-14 02:24) [79]

>[78] yuraspb(c) 14-Nov-2006, 01:57
>у меня 100кГц
ты платформой не ошибся?
вопрос более глобальный: ты выбором специальности не ошибся?


 
MikePetrichenko ©   (2006-11-14 02:39) [80]


> Как это можно обойти? мне действительно нужно столько объектов.

Для тех кто в танке:
Memory Mapped Files MSDN


> вопрос более глобальный: ты выбором специальности не ошибся?

И не только специальности...


 
fog   (2006-11-14 02:55) [81]

>Для тех кто в танке:
>Memory Mapped Files MSDN

согласен.
при такой частоте - только так.

 + описание АЦП (min/max значения, вес 1 разряда)


 
fog   (2006-11-14 03:22) [82]

+ летом пролетал вопрос про осциллограф из звуковой платы -> в архив форума


 
Anatoly Podgoretsky ©   (2006-11-14 08:55) [83]

> fog  (14.11.2006 02:55:21)  [81]

> описание АЦП (min/max значения, вес 1 разряда)

Ну он же утверждает, что у него REAL :-)


 
yuraspb ©   (2006-11-16 11:15) [84]

Да, похоже у меня не real )


 
Mikhail V ©   (2006-11-16 11:28) [85]

Весело тут у вас


 
Сергей М. ©   (2006-11-16 11:32) [86]


> yuraspb ©   (16.11.06 11:15) [84]
>
> Да, похоже у меня не real


real или не real у тебя там - не суть как важно.

Ты лучше объясни нам, бестолковым, зачем тебе такой огромный по размеру массив ?

Что мешает считывать из АЦП блоки данных в массив размером, скажем, 4к и тут же записывать содержимое массива в файл ?


 
yuraspb ©   (2006-11-16 13:47) [87]

Сергей М.,

Спасибо Вам за действительно Полезный совет. Я попробую так и сделать.
Соответственно считывать их тоже можно блоками? А как узнать сколько? Записывать число последней или первой записью?


 
Сергей М. ©   (2006-11-16 14:11) [88]

Приведи фрагмент кода, в котором ты читаешь АЦП и заполняешь свой массив, тогда и рекомендации, возможно, будут.


 
yuraspb ©   (2006-11-16 14:17) [89]

With ptFaiData do
 begin
   overrun    := @wOverrun;
   count      := frmInit.giConvCount;
   start      := 0;               {Start from buffer begging}
   DataType   := Word(frmInit.chkFloatData.Checked);
   ActiveBuf  := 0;               {Single buffer}

   {If want floating data}
   if DataType = 1 Then
     i := SizeOf(single)
   {Else need Raw data}
   else
     i := SizeOf(Word);
   DataBuffer := Pointer(GlobalLock(frmInit.hUserbuf));    {Alolocate memory for data}
 end;
 lErrCde := DRV_FAITransfer(frmInit.ghDev, ptFaiData);
 if DoesErr(lErrCde) = 1 then
 begin
   GlobalUnlock(frmInit.hBuf);
   GlobalFree(frmInit.hBuf);
   GlobalUnlock(frmInit.hUserbuf);
   GlobalFree(frmInit.hUserbuf);
   DRV_DeviceClose(frmInit.ghDev);
   Exit;
 end;

 {Save data to data show screen}
 p := ptFaiData.DataBuffer;
 if gbCyclic = True Then
   lRetrieved := ptFaiData.count - 1
 else
   lRetrieved := ptAiCheck.retrieved^ - 1;

 frmDataShow.memData.Lines.Clear;
j:=0;
 for i:=0 to (lRetrieved - 1) do
 begin

   if ptFaiData.DataType = 1 then
   begin
      {Converting to Floating data}

j:=j+1;
 if j=1 then frminit.Chart1.Series[0].AddXY(i+vt,Single(p^),"",10289720);
if j=2 then frminit.Chart1.Series[1].AddXY(i+vt,Single(p^),"",16711680);
   if j=3 then frminit.Chart1.Series[2].AddXY(i+vt,Single(p^),"",12550656);
    if j=4 then frminit.Chart1.Series[3].AddXY(i+vt,Single(p^),"",40192);
    if j=5 then frminit.Chart1.Series[4].AddXY(i+vt,Single(p^),"",65408);
      if j=6 then frminit.Chart1.Series[5].AddXY(i+vt,Single(p^),"",65535);
       if j=7 then frminit.Chart1.Series[6].AddXY(i+vt,Single(p^),"",33023);
        if j=8 then frminit.Chart1.Series[7].AddXY(i+vt,Single(p^),"",255);
    if j=8 then j:=0;
     Longint(p) := Longint(p) + SizeOf(Single);
   end
   else
   begin
     {Convert to Hex data}
     frmDataShow.memData.Lines.Append(Format("Buff[%d] = ", [i])+ IntToHex(Word(p^), 3));
     Longint(p) := Longint(p) + SizeOf(Word);
   end;
 end;

 {Free data buffer}

 GlobalUnlock(frmInit.hBuf);
 GlobalFree(frmInit.hBuf);
 GlobalUnlock(frmInit.hUserbuf);
 GlobalFree(frmInit.hUserbuf);

 {Close device}
 DRV_DeviceClose(frmInit.ghDev);

 {Display the Data Show Form}
 frmConverting.Enabled := True;
 butTerminate.Caption := "&Terminate";
//frmDataShow.Show;
 frmInit.Enabled := True;
 frmConverting.Hide;
//rminit.StatusBar1.SimpleText:="&#195;&#238;&#242;&#238;&#226;. &#200;&#237;&#244;&#238;&#240;&#236;&#224;&#246;&#232;&#255; &#238;&#225;&#240;&#224;&#225;&#238;&#242;&#224;&#237;&#224;. ";
//frminit.gotov:=true;
// if not frminit.stopp then frminit.butconvert.click;
end;


 
Сергей М. ©   (2006-11-16 14:36) [90]


> count      := frmInit.giConvCount;


И чему равно значение frmInit.giConvCount ?


 
yuraspb ©   (2006-11-16 14:45) [91]

обычно 90000


 
Сергей М. ©   (2006-11-16 14:50) [92]


> обычно 90000


Откуда это число взялось ? От балды взято ? Или чем-то аргументирован его выбор ? Как оно соотносится с массивом размером в ~50 мбайт (см. [9]) ?


 
ANB ©   (2006-11-16 14:51) [93]


> yuraspb ©   (16.11.06 14:17) [89]

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


 
Jeer ©   (2006-11-16 14:54) [94]


> yuraspb ©   (16.11.06 14:17) [89]


Вам повезло, что я не Ваш начальник.


 
Сергей М. ©   (2006-11-16 14:54) [95]

И нафих, спрашивается, ты сюда чарт приплел ? Всуе ?


 
Сергей М. ©   (2006-11-16 14:55) [96]


> Jeer ©   (16.11.06 14:54) [94]


Да уж, Серега).. Я бы не позавидовал автору при таком раскладе)


 
yuraspb ©   (2006-11-16 14:55) [97]

да число строго аргументировано, причём прогонять его надо аж 10 раз подряд ( 10 раз по 90000 ).
Кроме этого его нужно обрабатывать с помощью кластерного анализа, но сейчас главное хотябы минимум обработки ( нормировка ) и запись в файл.


 
yuraspb ©   (2006-11-16 14:57) [98]


> Вам повезло, что я не Ваш начальник.


я и есть начальник.


 
Сергей М. ©   (2006-11-16 14:59) [99]


> yuraspb ©   (16.11.06 14:55) [97]


> число строго аргументировано


Плакалъ ...

Сразу вспомнилось

- Аргументируйте !
- Аргументриую.
- Чем ?
- АргУментами !

(С)

Спасиб, потешил меня, старика))


> прогонять его надо аж 10 раз подряд ( 10 раз по 90000 )


Получил свои 90000 в очередной итерации ? Сразу пиши их в файл ! В чем проблема ?


 
Сергей М. ©   (2006-11-16 14:59) [100]


> я и есть начальник


"Ты начальник - я дурак" (с)

))


 
yuraspb ©   (2006-11-16 15:00) [101]

обработать мне их надо


 
Сергей М. ©   (2006-11-16 15:01) [102]

Ну так как все-таки связано сакраментальное число 90000 с размером массива в ~50мбайт ?
Я так и не понял...


 
yuraspb ©   (2006-11-16 15:02) [103]

я вообще не понимаю что за 50 мбайт и откуда Вы их взяли


 
Сергей М. ©   (2006-11-16 15:02) [104]


> yuraspb ©   (16.11.06 15:00) [101]
>
> обработать мне их надо


Ну и обработай ! Что мешает-то ? А обработав тут же пиши в файл. Начерта тут массив-то бешеного размера ? Объясни мне, тундре ...


 
Сергей М. ©   (2006-11-16 15:04) [105]


> yuraspb ©   (16.11.06 15:02) [103]


> не понимаю что за 50 мбайт и откуда Вы их взяли
>


> yuraspb ©   (10.11.06 19:37) [9]
>
> У меня массив array[1..8,1..1000000] of real
>


Это ты сказал, я ни слова ни приврал.

SizeOfReal = 6

8 * 1000000 * 6 = 48000000 ~ 50mb

Any questions, sir ?


 
yuraspb ©   (2006-11-16 15:06) [106]

объясню: мне кажется если я буду обрабатывать в реальном времени у меня всё будет зверски тормозить.
И к тому же будет идти запись 90000 раз по одному значению?


 
yuraspb ©   (2006-11-16 15:09) [107]

про массив я говорил, но так как вариантов решения в таком виде не нашлось решил сделать 10 раз по 90000


 
Сергей М. ©   (2006-11-16 15:09) [108]


> yuraspb ©   (16.11.06 15:06) [106]


Ты вообще откуда этот код взял ? Содрал откуда-то ? Док-ция к нему хоть какая-то имеется ? Если имеется, то читал ли ты ее ?


> мне кажется


Ты программист или где ?)
Что значит "кажется" ?
Что подразумевается под "обрабатывать в реальном времени" ?
Что значит "тормозить" ?

Что за детсад, в конце концов !?


 
Сергей М. ©   (2006-11-16 15:10) [109]


> будет идти запись 90000 раз по одному значению?
>


Это кто сказал ?


 
Сергей М. ©   (2006-11-16 15:11) [110]


> yuraspb


Слыш, начальник, это какой-то бред...

Ты вообще-то понимаешь, что происходит при вызове тобой некоей ф-ции DRV_FAITransfer() ?


 
yuraspb ©   (2006-11-16 15:16) [111]

слушай, я понимаю что вы тут все крутые бывалые программеры и Ketmar- школьник,
но пойми это не моя сфера, мне сказали как сделать я сделал, не получилось, вот пытаюсь чтото изменить


 
yuraspb ©   (2006-11-16 15:19) [112]

DRV_FAITransfer - наверно это ошибка передачи


 
Сергей М. ©   (2006-11-16 15:20) [113]


> мне сказали как сделать я сделал


Как это соотносится с [98] ?

Так обычно действует исполнитель, но отнюдь не начальник.


> пытаюсь чтото изменить


Прежде чем здесь что-то менять, следует понять, как работает ф-ция DRV_FAITransfer()

Ты ни сам не желаешь это сделать, ни нам инф-ции не даешь.

И что же ты хочешь при таком раскладе ?

Продолжай париться - это единственное, что я могу посоветовать в такой ситуации.


 
Сергей М. ©   (2006-11-16 15:22) [114]


> DRV_FAITransfer - наверно это


Вот как выяснишь, так и приходи)

Что тут гадать на коф.гуще да с бубном скакать вокруг твоей проблемы ?


 
yuraspb ©   (2006-11-16 15:24) [115]


> Как это соотносится с [98] ?
>
> Так обычно действует исполнитель, но отнюдь не начальник.
>
</>
программеры хотят денег немеренно не нашёл никого дешевле 15000, а всё это написал мой друг, а сам свалил.


 
yuraspb ©   (2006-11-16 15:28) [116]

DRV_FAITransfer() - это и есть функция которая запускает передачу данных с АЦП


 
Плохиш ©   (2006-11-16 15:34) [117]

Хм, как-то не вяжутся

> yuraspb ©   (16.11.06 14:57) [98]
> я и есть начальник.

и

> yuraspb ©   (16.11.06 15:16) [111]
> мне сказали как сделать я сделал

:-)

А вообщв, спасибо за ветку, и главное вовремя. Весёлый желудок лучше пищу переваривает :-P


 
Плохиш ©   (2006-11-16 15:35) [118]


> yuraspb ©   (16.11.06 15:28) [116]
> DRV_FAITransfer() - это и есть функция которая запускает
> передачу данных с АЦП

Такие красивые намёки (c) котёнок Гав :-)


 
Сергей М. ©   (2006-11-16 15:44) [119]


> yuraspb ©   (16.11.06 15:28) [116]
>
> DRV_FAITransfer() - это и есть функция которая запускает
> передачу данных с АЦП


Замечательно.
Мои телепатические способности явно не равны нулю).

Ну так и что там насчет описания параметров/перультата этой ф-ции ?


> программеры хотят денег немеренно не нашёл никого дешевле
> 15000, а всё это написал мой друг, а сам свалил


Бедняжка, тебя пожалеть-приголубить прилюдно  ?(


 
yuraspb ©   (2006-11-16 15:44) [120]

Удалено модератором


 
Сергей М. ©   (2006-11-16 15:45) [121]


> перультата


Вот так я дал жару))

РЕЗУЛЬТАТА, разумеется)..


 
yuraspb ©   (2006-11-16 15:47) [122]

параметры:
PT_FAITransfer = Record
   ActiveBuf   : Smallint;
   DataBuffer  : Pointer;
   DataType    : Smallint;
   start       : Longint;
   count       : Longint;
   overrun     : ^Smallint;
End;

PT_FAICheck = Record
   ActiveBuf  : ^Smallint;
   stopped    : ^Smallint;
   retrieved  : ^Longint;
   overrun    : ^Smallint;
   HalfReady  : ^Smallint;
End;


 
Сергей М. ©   (2006-11-16 15:47) [123]

Удалено модератором


 
Сергей М. ©   (2006-11-16 15:50) [124]


> yuraspb ©   (16.11.06 15:47) [122]


Ну и нахрен ты тут ЭТО выложил ?

ты сам-то понимаешь назначение всего этого ?

Или ты предлагаешь нам попрыгав с бубном восстановить ход мыслей твоего безвременно почившего "дружка" ?


 
yuraspb ©   (2006-11-16 15:52) [125]

Сергей М. поаккуратней


 
yuraspb ©   (2006-11-16 15:53) [126]

ты спросил параметры - вот их типы


 
Сергей М. ©   (2006-11-16 15:54) [127]


> yuraspb ©   (16.11.06 15:52) [125]


А то что ?)

Тебе шашнечки или ехать ?


 
Сергей М. ©   (2006-11-16 15:56) [128]


> yuraspb ©   (16.11.06 15:53) [126]
>
> ты спросил параметры - вот их типы


И что ?

Я должен с бубном прыгать, пытаясь понять назначение тех самых параметров ?


 
Плохиш ©   (2006-11-16 15:57) [129]

Хм, у него в увлечениях написано, что он самоубийца :-)


 
yuraspb ©   (2006-11-16 15:58) [130]

Удалено модератором


 
Сергей М. ©   (2006-11-16 15:59) [131]


> Плохиш ©   (16.11.06 15:57) [129]


А мне другое показалось - автор спасает от жары козлов)


 
yuraspb ©   (2006-11-16 16:01) [132]

Удалено модератором


 
Сергей М. ©   (2006-11-16 16:04) [133]


> yuraspb ©   (16.11.06 15:58) [130]


Слушай-ка, "программер-начальник" aka "мученик", ты чего хотел-то ?
Чтобы я прыгая с бубном выяснил что там твой безвременно кинувший тебя "дружок" реализовал в некоей ф-ции DRV_FAITransfer() ?!)

Нет уж нет уж))


 
yuraspb ©   (2006-11-16 16:08) [134]

хорошо, я понял, нет конкретного вопроса. Хорошо, конкретный вопрос: как мне вот эту величину p записывать в файл ? просто по write сколько угодно раз?


 
Array ©   (2006-11-16 16:08) [135]

Удалено модератором


 
Сергей М. ©   (2006-11-16 16:09) [136]

Удалено модератором


 
Сергей М. ©   (2006-11-16 16:11) [137]


> как мне вот эту величину p записывать в файл ?


Что есть "величина p" ?


 
yuraspb ©   (2006-11-16 16:13) [138]

Удалено модератором


 
yuraspb ©   (2006-11-16 16:14) [139]

Удалено модератором


 
Anatoly Podgoretsky ©   (2006-11-16 16:16) [140]

> Сергей М.  (16.11.2006 14:11:28)  [88]

Не дождетесь - из какого то спектакля.


 
yuraspb ©   (2006-11-16 16:16) [141]

Удалено модератором


 
icWasya ©   (2006-11-16 16:17) [142]

Удалено модератором


 
Anatoly Podgoretsky ©   (2006-11-16 16:17) [143]

> Jeer  (16.11.2006 14:54:34)  [94]

> Вам повезло, что я не Ваш начальник.

Но ему не повезло, что он пришел на форум с такими партизанскими замашками.


 
Stanislav ©   (2006-11-16 16:18) [144]

yuraspb ©   (10.11.06 19:06)  
Нужно объявить файл of MyType.
А тип будет являтся массивом.


 
Сергей М. ©   (2006-11-16 16:19) [145]

Удалено модератором


 
Anatoly Podgoretsky ©   (2006-11-16 16:19) [146]

> yuraspb  (16.11.2006 15:02:43)  [103]

Тоже не понятно, речь была про 64 мб


 
yuraspb ©   (2006-11-16 16:19) [147]

Уважаемый Anatoly Podgoretsky я первый ни на кого не наезжал, а просто хотел найти ответ на свой вопрос.


 
Anatoly Podgoretsky ©   (2006-11-16 16:20) [148]

> Сергей М.  (16.11.2006 15:04:45)  [105]

Борис ты не прав!

8 * 1000000 * 6 = 48000000 ~ 50mb
8 * 1000000 * 8 = 48000000 = 64mb


 
yuraspb ©   (2006-11-16 16:20) [149]


> Stanislav ©   (16.11.06 16:18) [144]
> yuraspb ©   (10.11.06 19:06)  
> Нужно объявить файл of MyType.
> А тип будет являтся массивом.

Станислав, я так и делал.


 
Anatoly Podgoretsky ©   (2006-11-16 16:20) [150]

> yuraspb  (16.11.2006 15:09:47)  [107]

Лучше 10 раз по разу, чем ни разу 10 раз.


 
Сергей М. ©   (2006-11-16 16:21) [151]


> Anatoly Podgoretsky ©   (16.11.06 16:20) [148]


Да пофигу)
все равно полста с лишним мбайт)


 
Anatoly Podgoretsky ©   (2006-11-16 16:22) [152]

> yuraspb  (16.11.2006 15:24:55)  [115]

Потому что ты не дал ему 15000 вот и свалил.
Скупой платит дважды.


 
Stanislav ©   (2006-11-16 16:22) [153]

yuraspb ©   (16.11.06 16:20) [149]
и что?


 
yuraspb ©   (2006-11-16 16:23) [154]


> Stanislav ©   (16.11.06 16:22) [153]
> yuraspb ©   (16.11.06 16:20) [149]

пишет переполнение стека


 
Anatoly Podgoretsky ©   (2006-11-16 16:24) [155]

> Сергей М.  (16.11.2006 15:45:01)  [121]

> перультата

> Вот так я дал жару))

> РЕЗУЛЬТАТА, разумеется)..

А чем это хуже данного обсуждения, тут хоть предмет есть и решение.


 
Anatoly Podgoretsky ©   (2006-11-16 16:25) [156]

> Сергей М.  (16.11.2006 15:56:08)  [128]

> Я должен с бубном прыгать

Ты когда появился в этой ветке?
А мы тут давно плачем.


 
Сергей М. ©   (2006-11-16 16:25) [157]


> yuraspb ©   (16.11.06 16:23) [154]
> пишет переполнение стека


Ну не придурок ли ты, а ?

Тебе ж говорят - твой стек не выдерживает таких "нагрузок", ТЫ ЖЕ ПРОДОЛЖАЕШЬ ПРО СВОЕ ДОЛДОНИТЬ)


 
Anatoly Podgoretsky ©   (2006-11-16 16:26) [158]

Будешь наезжать закрою ветку, хотя очень жалко, народ меня не поймет!


 
Сергей М. ©   (2006-11-16 16:26) [159]


> Anatoly Podgoretsky ©   (16.11.06 16:25) [156]


Удаляюсь.
Плакалъ.
Усталъ.


 
yuraspb ©   (2006-11-16 16:27) [160]

Удалено модератором


 
Андрей Сенченко ©   (2006-11-16 16:27) [161]


> Anatoly Podgoretsky ©   (16.11.06 16:20) [148]
> > Сергей М.  (16.11.2006 15:04:45)  [105]
>
> Борис ты не прав!
>
> 8 * 1000000 * 6 = 48000000 ~ 50mb
> 8 * 1000000 * 8 = 48000000 = 64mb


Все срочно топтать Подгорецкого ! Наконец то облажался :) Пустячок, а все-же :)


 
yuraspb ©   (2006-11-16 16:28) [162]

Удалено модератором


 
Anatoly Podgoretsky ©   (2006-11-16 16:28) [163]

> Сергей М.  (16.11.2006 16:25:37)  [157]

Тебе тоже не стоит наезжать, из-за тебя я ветку не закрою, есть и другое,
Что не можешь послать подальше без наезда?


 
Плохиш ©   (2006-11-16 16:29) [164]


> Андрей Сенченко ©   (16.11.06 16:27) [161]

Дождался? Деточка.


 
Anatoly Podgoretsky ©   (2006-11-16 16:29) [165]

> yuraspb  (16.11.2006 16:23:34)  [154]

Ответ уже давали, повторяться нет смысла. Сам можешь перечитать ветку.


 
Андрей Сенченко ©   (2006-11-16 16:29) [166]


> Плохиш ©   (16.11.06 16:29) [164]


Не а .. случайно напоролся


 
Anatoly Podgoretsky ©   (2006-11-16 16:30) [167]

> yuraspb  (16.11.2006 16:19:27)  [147]

Наезжал или нет, это мне решать, совсем необзательно, чтобы наши представления совпадали.


 
Stanislav ©   (2006-11-16 16:30) [168]

А через TStream неполучится ?

Ты его по частям разбей.
А нафига тебе такой большой массив?


 
Плохиш ©   (2006-11-16 16:31) [169]


> Anatoly Podgoretsky ©   (16.11.06 16:28) [163]

Может стоит в "Потрепаться" отправить?


 
MikePetrichenko ©   (2006-11-16 16:31) [170]

Я рыдаю...
С просоня это в сам раз.

В который раз. Для тех кто в танке:
Memory Mapped File
Если очень нужны массивы:
array [0..0] of Byte (Integer, Real, Word).

Для обработать и читать FILE_SHARE_READ.

Открыть MSDN и читать до просветления указанные темы.


 
Anatoly Podgoretsky ©   (2006-11-16 16:32) [171]

> Андрей Сенченко  (16.11.2006 16:27:41)  [161]

А ты смотри после второго знака равно, может и топтать не придется, а за первый знак равно топтать китайцев!!!


 
yuraspb ©   (2006-11-16 16:32) [172]


> Stanislav ©   (16.11.06 16:30) [168]
> А через TStream неполучится ?
>
> Ты его по частям разбей.
> А нафига тебе такой большой массив?

через TStream не пробовал, такой надо.


 
Плохиш ©   (2006-11-16 16:32) [173]


> Плохиш ©   (16.11.06 16:31) [169]
>
> > Anatoly Podgoretsky ©   (16.11.06 16:28) [163]
>
> Может стоит в "Потрепаться" отправить?

Хотя нет, после Stanislav ©   (16.11.06 16:30) [168] можно ещё здесь подержать, посмотреть на результат :-)


 
Андрей Сенченко ©   (2006-11-16 16:36) [174]


> Anatoly Podgoretsky ©   (16.11.06 16:32) [171]


Злой Вы какой-то стали, Анатолий, за те пару лет что я здесь не был. Может Новопасситику предложить ?

*уходит топтать китайцев*


 
yuraspb ©   (2006-11-16 16:37) [175]

Да тут все какие-то злые


 
yuraspb ©   (2006-11-16 16:38) [176]


> Для обработать и читать FILE_SHARE_READ.

Спасибо, пошёл искать в мсдн


 
Anatoly Podgoretsky ©   (2006-11-16 16:41) [177]

> Андрей Сенченко  (16.11.2006 16:29:46)  [166]

Все мы случайно напоролись, кто же знал, что здесь мины.


 
Anatoly Podgoretsky ©   (2006-11-16 16:41) [178]

> Плохиш  (16.11.2006 16:31:49)  [169]

Рано, вот уже и код стал приводить, только зубы показывает.


 
Anatoly Podgoretsky ©   (2006-11-16 16:42) [179]

> Андрей Сенченко  (16.11.2006 16:36:54)  [174]

Устаем


 
Stanislav ©   (2006-11-16 16:51) [180]

У меня через stream  все работает, файл получился 64 мб.


 
ANB ©   (2006-11-16 16:51) [181]


> yuraspb ©   (16.11.06 16:38) [176]

15000 - это евро или баксов ? Я готов за 10000 все сделать.


 
ANB ©   (2006-11-16 16:52) [182]


> Я готов за 10000 все сделать

но в евро


 
ANB ©   (2006-11-16 16:54) [183]


> Stanislav ©   (16.11.06 16:51) [180]
> У меня через stream  все работает, файл получился 64 мб.
>

Этот балбес до записи в файл и не доходил. Прога падала на входе в процедуру, т.к. он локально объявил слишком здоровый статический массив. А через стрим (как и другими способами) можно без проблем и несколько гигов записать. 64 метра - это не размер.


 
MikePetrichenko ©   (2006-11-16 16:57) [184]


> У меня через stream  все работает, файл получился 64 мб.

Можно и Stream. Но c Memory Mapped проще потом читать сырые данные из того же файла в который пишем и обрабатывать.

Хотя в данном случае разницы нет.


 
yuraspb ©   (2006-11-16 17:11) [185]


> ANB ©   (16.11.06 16:51) [181]
>
> > yuraspb ©   (16.11.06 16:38) [176]
>
> 15000 - это евро или баксов ? Я готов за 10000 все сделать.
>

я тебя за бесплатно не возьму


 
yuraspb ©   (2006-11-16 17:12) [186]


> Stanislav ©   (16.11.06 16:51) [180]
> У меня через stream  все работает, файл получился 64 мб.
>

Станислав спасибо, поделитесь исходниками )


 
ANB ©   (2006-11-16 17:12) [187]


> MikePetrichenko ©   (16.11.06 16:57) [184]

На хорошем компе стрим кэшируется. можно и писать и читать. а на тормозном эту хрень все равно без толку запускать.
Кроме того MMF штука не сильно простая, вряд ли автор ее одолеет.


 
Jeer ©   (2006-11-16 17:18) [188]

Мужики, да фигню нам тут вешает автор сабжа.

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

Автору сабжа - начать все с нуля и, прежде всего, с описания режимов работы device.

Намек уже давался - читать порциями из АЦП и скидывать в файл(ы), именуя их по дате/времени.

Более того, практически все современные PCI-ADC имеют внутренний буфер определенного объема, что безусловно позволяет снизить частоту чтения и сброса в файл(ы)


 
yuraspb ©   (2006-11-16 17:19) [189]

Всем спасибо, Особенно Станиславу, я жду Ваш исходник


 
Stanislav ©   (2006-11-16 17:23) [190]

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;


 
MikePetrichenko ©   (2006-11-16 17:25) [191]


> Всем спасибо, Особенно Станиславу, я жду Ваш исходник

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


 
fog   (2006-11-16 17:57) [192]

Интересно, а frminit.Chart1 резиновый? отрисовать 8*100000 точек в сек.

Все так увлеклись записью на диск, что про это забыли или забили...


 
Jeer ©   (2006-11-16 18:06) [193]


> fog   (16.11.06 17:57) [192]


Там много веселого.


 
MikePetrichenko ©   (2006-11-16 19:34) [194]


> Интересно, а frminit.Chart1 резиновый? отрисовать 8*100000
> точек в сек.

Ага. А девайс выдает 800000 единиц инфы и все. Потом умирает... Что вы так к этому размеру прицепились.
Созранять нудно подряд все. Потом иметь доступ к сохраненным данным.
А отрисовывать "окно" из этих данных.


 
yuraspb ©   (2006-11-16 20:13) [195]

всё работает )


 
fog   (2006-11-16 20:23) [196]

>Что вы так к этому размеру прицепились.
Дело не в размере, хотя он тоже имеет значение :))

>Созранять нудно подряд все.
Согласен на 100 %.

Есть такое понятие - масштаб. => Так ли жизненно необходимо выводить КАЖДУЮ точку? Для примера - любой аудио редактор.



Страницы: 1 2 3 4 5 вся ветка

Форум: "Начинающим";
Текущий архив: 2006.12.03;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.94 MB
Время: 0.042 c
15-1163507354
Юрий Зотов
2006-11-14 15:29
2006.12.03
В Base64 и обратно


2-1163243363
lsvit
2006-11-11 14:09
2006.12.03
TList


6-1152878872
Comrade
2006-07-14 16:07
2006.12.03
компонент IdIRC


15-1163586466
YOjik
2006-11-15 13:27
2006.12.03
Загадка


2-1163473730
Wood
2006-11-14 06:08
2006.12.03
Continue, вложенный цикл.





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский