![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Копирование двух массивов в один [D6, XP]
AlexOld © (2006-01-08 17:02:00)Уважаемые мастера! Чтобы сократить время на доступ к жесткому диску при записи цифрового видео (442КБ на кадр), собирался открыть два потока в памяти каждый на 10..20 кадров. В один вводить данные, а другой писать на диск, по очереди, есс-но. Не знаю, насколько эта идея продуктивна, но вот что обнаружилось при попытке простого отображения массива в память:
Код учебной программы
type
MArray= TMemoryStream;
var
P: array[0..9] of byte;
T1: MArray;
k: Integer;
HFile: THandle;
begin
T1:= TMemoryStream.Create;
HFile := FileCreate('test.dat');
T1.Clear;
T1.Seek(0,soFromBeginning);
for k:=0 to 9 do
P[k]:= k;
T1.WriteBuffer(P,SizeOf(P));
FileWrite(HFile,T1,T1.Size);
T1.Free;
end;
В полученном файле первые шесть элементов стабильно имеют значения 8, 62, 140, 0, 148, 133, а потом уже идут 0, 1, 2, 3. Не могу разобраться, почему. Пожалуйста, помогите.
Zeqfreed (2006-01-08 18:42:00) [1]AlexOld (08.01.06 18:24) [2]
Если Вам не трудно, то прокомментируйте, пожалуйста, каждую строчку Вашего «учебного примера: чего Вы хотели ей добиться и чего хотели добиться этим кодом в общем.
AlexOld (2006-01-08 18:24:00) [2]Ну, уважил. А я-то, балда...
Anton_K (2006-01-08 17:12:00) [3]Так ты ж объект в файл пишешь.