![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Может тупой вопрос, извините если что [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]Любого затруднительно, приведи описание своего массива.