![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
![]() Помогите ответить на вопрос!
Как передать кол-во элементов массива в процессе работы программы. динамический массив в данном случае, как я считаю, не подойдет, так как массив используется в записи, и считка данных в запись происходит по размеру записи, и если сделать массив динамическим, то размер записи будет не правильным - 4 б Последний раз редактировалось Tonyy, 18.10.2010 в 05:12. |
#2
|
||||
|
||||
![]() А теперь еще раз и подробненько, откуда 4кб взялись, какая запись и т.д. Телепатов нема.
Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |
#3
|
|||
|
|||
![]() Извини страдалец не кило а просто 4 байта.
ситуация примерно такая: Код:
procedure TForm1.Button1Click(Sender: TObject); type TData = record diskret: array of single; end; var Data:TData; begin Setlength(data.diskret,1000); edit1.Text:=inttostr(sizeof(data)); end; по идее я объявляю переменную, через 4 байтный формат, затем передаю кол-во элементов 1000, ожидаю что моя переменная будет размером 4000байт (так оно и было бы если бы я описал статичный массив), но она всего 4. какие есть еще способы или хитрости передать кол-во элементов массива в ходе выполнения процедуры? может вместе с установкой кол-ва элементов динамического массива можно как то и объем памяти задавать? Последний раз редактировалось Tonyy, 18.10.2010 в 15:17. |
#4
|
||||
|
||||
![]() Код:
procedure bla(var dynarr: array of Single); var i: Integer; begin for i:=0 to Length(dynarr)-1 do dynarr[i]:=Random(100); end; procedure TForm1.FormCreate(Sender: TObject); var i: Integer; begin SetLength(diskret, 100); bla(diskret); for i:=0 to Length(diskret)-1 do Memo1.Lines.Add(FloatToStr(diskret[i])); end; Пишу программы за еду. __________________ |
#5
|
|||
|
|||
![]() в моем случае это не работает. все равно размер записи остается 4 байта.
|
#6
|
||||
|
||||
![]() Код:
type TData = record dynarr: array of Integer; end; var Data: TData; begin SetLength(Data.dynarr, 1000); Caption:=IntToStr(SizeOf(Data.dynarr)*Length(Data.dynarr)); end; Пишу программы за еду. __________________ |