Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2011.10.30;
Скачать: [xml.tar.bz2];

Вниз

Запись в файл данных динамического массива   Найти похожие ветки 

 
bestolkov   (2011-07-12 09:49) [0]

Добрый день!Существует ли быстрый способ записи в файл данных динамического массива?Поэлементно уж очень долго...


 
Сергей М. ©   (2011-07-12 09:54) [1]

Смотря что за массив ..
Кое-какие можно в два маха записать, а прочие в N махов ..


 
bestolkov   (2011-07-12 09:57) [2]

DataArray : array of Trecord


 
Сергей М. ©   (2011-07-12 09:58) [3]


> Trecord


Смотря что за TRecord ..


 
bestolkov   (2011-07-12 10:02) [4]

Trecord =
B : byte;
A: array[0..3] of real
Ab:array  [0..3] of real


 
Сергей М. ©   (2011-07-12 10:05) [5]

var
 i: Integer;
MyDynArray: array of TRecord;
..
i := Length(MyDynArray);
FileStream.WriteBuffer(i, SizeOf(i)); // раз мах
FileStream.WriteBuffer(MyDynArray[0], i*SizeOf(TRecord)); // два мах



 
bestolkov   (2011-07-12 10:21) [6]

Исчерпывающе, большое спасибо!


 
Омлет ©   (2011-07-12 10:22) [7]

> раз мах

Можно только второй мах оставить )

> Поэлементно уж очень долго...

Это сколько же у вас элементов?


 
Сергей М. ©   (2011-07-12 10:25) [8]


> Можно только второй мах оставить


Разумеется, можно и только второй, если в этот файл больше ничего записано не будет.


 
~   (2011-07-12 10:55) [9]


> Сергей М. ©   (12.07.11 10:05) [5]


тип "FileStream" нифига не озвучен.
Поясню: Есть либо писать в память, либо на хард. При больших объемах разница существенна


 
Сергей М. ©   (2011-07-12 11:09) [10]


> Есть либо писать


Это уж автору решать - либо есть либо писать)
А объем съедаемого либо писаемого автором нифига не озвучен, зато озвучено вполне определенное требование - файл. Потому и FileStream. А уж что за ним скрывается - это домашнее задание автору)


 
Плохиш ©   (2011-07-12 11:09) [11]


> ~   (12.07.11 10:55) [9]
>
>
> > Сергей М. ©   (12.07.11 10:05) [5]
>
>
> тип "FileStream" нифига не озвучен.

Это домашнее задание.


 
RWolf ©   (2011-07-12 11:14) [12]

if i<>0 then
 FileStream.WriteBuffer(MyDynArray[0], i*SizeOf(TRecord));


 
~   (2011-07-12 11:17) [13]


> Сергей М. ©   (12.07.11 11:09) [10]


"Либо" засчитано )) +1


 
Сергей М. ©   (2011-07-12 11:22) [14]


> RWolf ©   (12.07.11 11:14) [12]
>
> if i<>0 then


Если не заморачиваться производительностью алгоритма, то это лишнее.



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

Форум: "Начинающим";
Текущий архив: 2011.10.30;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.004 c
11-1238921424
MTsv DN
2009-04-05 12:50
2011.10.30
Использование LIB в Дельфи


11-1206425669
MTsv DN
2008-03-25 09:14
2011.10.30
Версия 2.87


15-1309552203
Юрий
2011-07-02 00:30
2011.10.30
С днем рождения ! 2 июля 2011 суббота


15-1309764636
Andy BitOff
2011-07-04 11:30
2011.10.30
Кто как решает задачу...


15-1309954783
dest81
2011-07-06 16:19
2011.10.30
select, sum как правильней





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