Форум: "Система";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.02.18;
Скачать: [xml.tar.bz2];




Вниз

Поделитесь кодом а :))) 


Русский   (2001-11-12 14:22) [0]

Подскажите пожалуйста, ну самый - самый быстрый способ прочитать несколько байт из файла в буфер.



33   (2001-11-13 02:06) [1]

Общая схема
Читаем первые 5 байт


var FHandle:Integer;
Buf:array[1..5] of byte;
begin
FHandle := FileOpen(name, fmOpenRead); //Открываем
FileSeek(FHandle,0,0); //устанавливаем указатель
FileRead(FHandle, Buf,5); //читаем в массив


А с буфером непонятно.
Тебе какой нужен? Буфер обмена Windows7



33   (2001-11-13 02:12) [2]

А насчет быстроты это не только от программы зависит.
Сделай виртуальный диск и самая медленная программа на виртуальном
диске в памяти будет читать файлы быстрее, чем самая быстрая на винте.
Кроме того есть такое слово Кеш, упреждающее чтение, фрагментация и т.д



Никто   (2001-11-13 03:21) [3]

SCSI



Русский   (2001-11-13 10:04) [4]

Слушай 33, во первых спасибо, что отозвался.
Во - вторых: вопрос ? Я делаю Hex - редактор (уж очень люблю всё ломать)
и вот мне нужно прочитать страницу 256 байт (соответственно 16 байт в
строке x 16 строк). Так вот как сделать быстрее читать по 16 байт,
перекодировать и выводить, или сразу прочесть 256 байт, потом
перекодировать и выводить. Как лучше?



Коляныч   (2001-11-13 10:14) [5]

Быстрее будет прочитать все 256 байт и потом их перекодировать



Марат   (2001-11-13 13:09) [6]

С точки зрения затрат времени
лучше всего читать один блок
например для NTFS по умолчанию размер блока равен 512
а еще есть параметры блочного чтения HDD,
размер кэша,
драйвер ОС ...



Vitaly Nevzorov   (2001-11-13 21:56) [7]

Когда-то была у меня проблема писать в файл с максимальной скоростью и я проводил измерение быстродействия разных способов (это было на Win 95/ Delhpi 3). Быстрее всего оказалось BlockRead-BlockWrite - при тщательно подобранном размере буфера (на тот момент на моем железе это было что-то между 64k и 512 kb), на втором месте оказалась работа через TFileStream, который впрочем довольно сильно отставал если надо было писать небольшими порциями. Потом шли виндовские функции чтения файла и соответствующие бормандовские (через OpenFile/FileOpen), на последнем месте - read/write. Данное исследование не претендует на универсальность, так как много воды утекло, уже мало у кого 95 винды встретишь и железо такое...



Exception   (2001-11-14 10:07) [8]

Вообще, начиная с определенного размера блока, размер блока не должен играть существенной роли - во первых, сейчас в Win2K/XP очень эффективно реализовано упреждающее чтение, а во вторых, практически все равно, сколько секторов читать за раз, если читаем болше секторов, чем на 1 дорожке - все равно, время перехода с дорожки на дорожку будет сравнимо или больше времени, потраченным на чтение. Так что читай килобайта по 64 - и все будет ОК.




Форум: "Система";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.02.18;
Скачать: [xml.tar.bz2];




Наверх





Память: 0.73 MB
Время: 0.02 c
7-57223           Русский               2001-11-12 14:23  2002.02.18  
Компонент ButtonNew!


14-57209          vector                2001-12-29 12:23  2002.02.18  
Не могу нормально посмотреть форумы Delphi


1-57059           Ihor                  2002-02-04 15:54  2002.02.18  
Регулярные выражения


3-56989           Стас                  2002-01-23 12:35  2002.02.18  
Создание таблицы


3-57023           olden                 2002-01-24 16:25  2002.02.18  
порекомендуйте гридину