Как работать с большими файлами через потоки в Delphi ?

Собственно как работать с потоками худо-бедно в Delphi Я разобрался, но проблема в том что на зачет преподаватель дал задачи с ОПРЕДЕЛЕННЫМ условием решения и поэтому решение этих задач, для меня проблематично. Вот собственно условия к задачам и сами задачи:http://www.image123.net/9f2xkgb60mnppic.htmlP.S. И ещё, если Я правильно понял преподавателя эти задачи нужно решить через класс TFileStream. Хотя Я могу и ошибаться...
8 ответов

А что там в задаче такого невыполнимого? Что именно тебя смутило из всего того текста.


1) Создать класс, Эмулирующий собой массив символов (посредством свойства-массива). 2) Памятью для хранения массива является поток данных. 3) Считается, что в задаче один символ занимает 2 байта.По пункту "3)", Я немного понял откуда ветер дует. Если Я не ошибаюсь то нужно размер считываемых блоков установить равным SizeOf(WideChar) = 2 байта, ну т.е. кажется так: Reset(f, SizeOf(WideChar));В остальном все более мене понятно, хотя и туманно... ))


кажется так
В целом логично.


Извиняюсь, что не по теме, но почему вы пишете "Я" с большой буквы?


В целом логично.
Ага, значит пункт "3)" отпадает, и все же остаются пункты "1)" и "2)".


Делаешь свойство массивного типа. Индекс - порядковый номер символа. В ридере проверка на допустимость индекса с учетом того, что символ 2 байта, и считывание из FileStream по заданному смещению двух байт. Во врайтере аналогично, только запись в FileStream двух байтОФФТОП
почему вы пишете "Я" с большой буквы?
Наверно очень большой парень


Делаешь свойство массивного типа. Индекс - порядковый номер символа.
Так... ?
type
 TOurComponent = class(TComponent)
 private
 { Private declarations }
 FArrayProp: array[0..9] of integer;
 function GetArrayProp(aIndex: integer): integer;
 procedure SetArrayProp(aIndex: integer; const Value: integer);
 protected
 { Protected declarations }
 public
 { Public declarations }
 property ArrayProp[aIndex: integer]: integer read GetArrayProp
 write SetArrayProp;
 published
 { Published declarations }
end;
В ридере проверка на допустимость индекса с учетом того, что символ 2 байта, и считывание из FileStream по заданному смещению двух байт.
Не совсем понял... Считывать из файла вот так "f1.ReadBuffer(simvol,SizeOf(WideCh ar));", если да, то как проверять ?


Ну тип ArrayProp явно не Integer. Возвращается два байта, лучше Word. Проверять - есть размер файла и индекс, вот и проверяй что бы по этом индексу не выскочить за пределы файла