Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.02.06;
Скачать: CL | DM;

Вниз

Может тупой вопрос, извините если что   Найти похожие ветки 

 
Альф   (2003-01-29 12:19) [0]

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


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

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


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


Length(Massiv)*SizeOf(TypeOfElementOfMassiv)


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

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


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

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


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

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

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


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

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

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


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


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

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


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

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


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

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


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

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


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

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


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

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


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

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



Страницы: 1 вся ветка

Текущий архив: 2003.02.06;
Скачать: CL | DM;

Наверх




Память: 0.46 MB
Время: 0.01 c
1-15633
Tolanay
2003-01-27 12:14
2003.02.06
тип Cardinal


1-15673
Tsr
2003-01-20 21:07
2003.02.06
: Unsafe type TBookmark


1-15592
swinole
2003-01-29 04:44
2003.02.06
Dll


6-15799
Stimo
2002-12-10 21:47
2003.02.06
TServerSocket TClientSocket отсутствуют в Delphi 7


7-15958
Олег0267
2002-11-30 18:50
2003.02.06
Как рабодать с портом IrDA?





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский