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

Вниз

Быстрая запись на винт   Найти похожие ветки 

 
LAMA3OID   (2003-10-15 15:34) [0]

Нужно очень быстро записать большой файл на винт (несколько сот метров). Из извесных мне способов быстрее всего работает writeln :) (я пробовал 8 способов).
В факе на каком-то сайте я читал, что есть какой-то способ быстрой записи (было написанно про запись минуя оперативку или что-то в этом роде)
Может кто нибудь знает как это сделать ?


 
Reindeer Moss Eater ©   (2003-10-15 15:43) [1]

было написанно про запись минуя оперативку или что-то в этом роде

А где находится ТО, что ты хочешь записать в файл "минуя оперативку" ?


 
Wizard_Ex ©   (2003-10-15 16:07) [2]

Попробуй так, по крайней мере так быстрее чем сразу писать на диск, причем намного

MemoryStream := TMemoryStream.Create;
{чегото пишешь}
MemoryStream.Write...
{чегото пишешь}

FileStream := TFileStream.Create(AFileName, fmCreate);
FileStream.CopyFrom(MemoryStream, 0);
FileStream.Free;
MemoryStream.Free;


 
Игорь Шевченко ©   (2003-10-15 16:54) [3]

Из известных способов быстрее всего работает команда copy


 
Mystic ©   (2003-10-15 17:36) [4]

CreateFile с отключеной буферизацией...


 
panov ©   (2003-10-15 18:11) [5]

Norton GHost


 
Александр Спелицин ©   (2003-10-16 15:04) [6]

Если только для NT/2k/Xp, то через порты завершения ввода-вывода. Есть в примерах к MSDN.


 
LAMA3OID   (2003-10-16 16:47) [7]

2 Mystic: Это как ?

2 Reindeer Moss Eater:
Да, я как-то не подумал, что в оперативке и находится...
Просто так было написанно...

2 Игорь Шевченко: Что за copy ?

2 panov: Что это за GHost ?

2 Wizard_Ex: Спасибо ! Попробую...


 
dva ©   (2003-10-20 04:57) [8]

Нужно очень быстро записать большой файл на винт (несколько сот метров). Из извесных мне способов быстрее всего работает writeln :) (я пробовал 8 способов).

Неплохо было бы привести список из этих восьми способов, дабы не повторяться при ответах. Есть ли среди них способ, используемый в Excel и Access ? Команда copy тоже дает неплохие результаты - правильно тебе советуют.


 
_Narayan_   (2003-10-21 15:28) [9]

у меня в книжке целая глава посвящена вопросу :
"Использование асинхронного ввода и вывода"

Есть примеры в электронном виде, но они на С++


 
Wizard_Ex ©   (2003-10-21 16:27) [10]

to
> dva © (20.10.03 04:57) [8]


Интересно а что это за способ используемый в Excel и Access?


 
icebeerg ©   (2003-10-21 18:47) [11]

procedure BlockWrite(var f: File; var Buf; Count: Integer [; var
AmtTransferred: Integer]) тоже пробовал?


 
LAMA3OID   (2003-10-22 15:22) [12]

2 icebeerg: Пробовал.
2 dva: А как в эксэле и ацессе это делается ? И как при помощи
copy это сделать ?
2 _Narayan_: Давай хоть на "Си". Мыло - LAMA3OID@ukr.net



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

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

Наверх




Память: 0.49 MB
Время: 0.011 c
4-86600
Serhio
2003-10-31 16:10
2003.12.26
Убить процесс


1-86356
Sash
2003-12-12 14:20
2003.12.26
XPManifest


3-86320
Frag
2003-11-29 14:00
2003.12.26
Загрузка из Excel`я в StringGrid боольшой таблицы


6-86474
LOX
2003-10-10 20:23
2003.12.26
ICQ


1-86394
DeMoN-777
2003-12-14 19:06
2003.12.26
Разбор строки