Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Может тупой вопрос, извините если что [D5, Win2k]


Альф ©   (2003-01-29 12:19:00) 

Как определить размер динамического массива в байтах чтобы можно было его сохранить в файле через TFileStream.Write ???


Anatoly Podgoretsky   (2003-01-29 13:24:00) [1]

Такой тип уже пойдет для TFileStream
Размер уже знаешь как вычислять


Mystic   (2003-01-29 13:16:00) [2]

Предпочитаю для динамических массивов использовать конструкцию вроде Length(MyArray) * SizeOf(MyArray[0]). В этом случае можно поменять тип элементов массива не внося существенных изменений в исходники.


Альф   (2003-01-29 13:10:00) [3]

2han_malign © (29.01.03 12:54)
Ну извини не так да :( - согласен надо:
TAString = array of string[64];


alxx   (2003-01-29 12:55:00) [4]

То-то я смотрю, че то у меня не получалось...


han_malign   (2003-01-29 12:54:00) [5]

> TAString = array of string;
:)))))))))))
- и вообще разбежался - что-бы динамические массивы и открытые строки в непрерывной области памяти лежали(не говоря уж о заголовках блоков памяти дописываемых Borland MM).
Поэлементно батенька - не бойтесь ручки замарать, а для строк еще и длинну читать/писать надо...


Anatoly Podgoretsky   (2003-01-29 12:46:00) [6]

Первый Length(TAInteger) * SizeOf(Integer)
Второй для TFileStream.Write смысла не имеет


Cu   (2003-01-29 12:38:00) [7]

а ну да - или Lenght вместо High и без + 1 :o/


Альф   (2003-01-29 12:36:00) [8]

Нуу простенький массив - чего тут :)

TAInteger = array of integer;
TAString = array of string;
...
protected
FAI: TAInteger;
FAS: TAString;


А так чтобы оба ??? - типа sizeof(FAI) + sizeof(FAS) ???
Тогда как определять адрес - откуда брать ???


Cu   (2003-01-29 12:33:00) [9]

длина массива - (High(массив) + 1)
а размер (High(массив) + 1) + SizeOf (элемент массива)

например:
A: array of Integer;
размер А в байтах = (High(A) + 1)* SizeOf (Integer)


han_malign   (2003-01-29 12:31:00) [10]

Кроме шуток - sizeof(Massiv[0])


alxx   (2003-01-29 12:27:00) [11]

Хотя, наверное, там еще что-то должно показывать его длину...


alxx   (2003-01-29 12:26:00) [12]


Length(Massiv)*SizeOf(TypeOfElementOfMassiv)


Anatoly Podgoretsky   (2003-01-29 12:25:00) [13]

Любого затруднительно, приведи описание своего массива.


Наверх

Титульная страница Поиск, карта сайта Написать письмо