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

Delphi Sources



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

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 17.10.2010, 22:16
Tonyy Tonyy вне форума
Новичок
 
Регистрация: 05.04.2010
Сообщения: 85
Репутация: 10
По умолчанию работа с массивами

Помогите ответить на вопрос!
Как передать кол-во элементов массива в процессе работы программы. динамический массив в данном случае, как я считаю, не подойдет, так как массив используется в записи, и считка данных в запись происходит по размеру записи, и если сделать массив динамическим, то размер записи будет не правильным - 4 б

Последний раз редактировалось Tonyy, 18.10.2010 в 05:12.
Ответить с цитированием
  #2  
Старый 17.10.2010, 23:34
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,723
Репутация: 52347
По умолчанию

А теперь еще раз и подробненько, откуда 4кб взялись, какая запись и т.д. Телепатов нема.
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.
Ответить с цитированием
  #3  
Старый 18.10.2010, 15:13
Tonyy Tonyy вне форума
Новичок
 
Регистрация: 05.04.2010
Сообщения: 85
Репутация: 10
По умолчанию

Извини страдалец не кило а просто 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. какие есть еще способы или хитрости передать кол-во элементов массива в ходе выполнения процедуры? может вместе с установкой кол-ва элементов динамического массива можно как то и объем памяти задавать?
Изображения
Тип файла: jpg пример.jpg (8.5 Кбайт, 14 просмотров)

Последний раз редактировалось Tonyy, 18.10.2010 в 15:17.
Ответить с цитированием
  #4  
Старый 18.10.2010, 15:36
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
По умолчанию

Код:
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  
Старый 19.10.2010, 16:00
Tonyy Tonyy вне форума
Новичок
 
Регистрация: 05.04.2010
Сообщения: 85
Репутация: 10
По умолчанию

в моем случае это не работает. все равно размер записи остается 4 байта.
Ответить с цитированием
  #6  
Старый 19.10.2010, 16:38
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
По умолчанию

Код:
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;
__________________
Пишу программы за еду.
__________________
Ответить с цитированием
Ответ


Delphi Sources

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

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

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

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


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


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

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