запису>]);
Довжина записи не типізований файлу вимірюється в байтах і за замовчуванням дорівнює 128 байт.
Тип даних Word (<довга запису>) - 0 .. 65535 максимальна довжина запису 64 Кбайт. Delphi НЕ накладає обмежень на довжину записи не типізований файлу, за винятком обмеження на цілий тип Word. br/>В
Жорсткий диск складається з декількох дисків, які в свою чергу складаються з секторів, що складаються з доменів. Розмір фізичного сектора на жорсткому диску 512 байт. Для забезпечення максимальної швидкості обміну даними довжину записи не типізований файлу слід задавати кратною розміру фізичного сектора на диску (512 байт). Крім того на логічному рівні кожному файлу виділяється як мінімум 1 кластер. Кожен кластер займає 2 або більше суміжних секторів. Як правило, на більшості дисків 1 кластер читається або записується за один оборот диска, по-цьому, максимальну швидкість обміну даними можна отримати, якщо вказати довжину записи не типізований файлу рівної розміру кластера в байтах. br/>
Процедури і функції для роботи з не типізований файлами
Для цих файлів можуть застосовуватися всі процедури і функції, призначені для типізованих, за винятком Read і Write, які замінюються високошвидкісними процедурами BlokRead і BlokWrite:
BlokRead (<файлова змінна 1>, <2>, <3> [, <4>]);
BlokWrite (<файлова змінна 1>, <2>, <3> [, <4>]);
- файлова змінна;
- буфер (тобто ім'я змінної, яка буде брати участь в обміні даними з диском);
- кількість записів, які повинні бути прочитані або записані за одне звернення до диска;
- повертає при виході з процедури кількість фактично опрацьованих записів.
Buff: array [1 .. 1024] of byte;: (f, buff, 2, x); [x = 1] p>
За одне звернення до процедури BlokRead/BlokWrite може бути передано n * (довжина запису) байт. Передача йде починаючи з першого файлу до змінної Buff. Програміст повинен піклуватися про те, що б довга внутрішнього подання змінної Buff була достатньою для розміщення всіх n * (довжина запису) байт. Якщо довжина буфера буде недостатньою або місце на диску закінчиться то виведеться: ПОМИЛКА!
Г? Потоки.
Stream - потік даних.
Thread - окремо виконується програма (окремий процес); програмний потік.
TSream - об'єкт потоку даних. Є базовим для потоків даних різного типу. У ньому реалізовані всі необхідні властивості і методи, використовувані для читання і запису даних на різні типи носіїв (пам'ять, диск, мережа ...). Завдяки йому, доступ до різних типів носіїв стає уніфікованим (єдиним, однаковим ...). У об'єктів TSream існує кілька нащадків одного рівня дозволяють працювати з різними носіями інформації. p align="justify"> Нащадки TSream:
TFileStream - застосовується для отримання доступу до файлів.
TMemoryStream - застосовується для отримання доступу до пам'яті.
TStringStream - застосовується для отримання доступу до рядків, що зберігаються в динамічній пам'яті.
TWinSocketStream - застосовується для отримання доступу до даних з мережі.
TOleStream - застосовується для отримання доступу до COM-інтерфейсу (component object model).
Для всіх цих об'єктів діють основні методи і властивості батьківського об'єкта TSream. p align="justify"> Основні властивості об'єкта TSream:
Position - вказує на поточну позицію курсору в потоці (починаючи з неї відбуватиметься читання файлу).
Size - розмір даних у потоці.
Методи об'єкта TSream:
CopyFrom - метод призначений для копіювання з іншого потоку:
1. покажчик на потік, з якого треба копіювати;
2. розмір даних (байт) підлягають копіюванню.
Read - дозволяє прочитати дані з потоку, починаючи з поточної позиції курсору:
1. буфер, в який відбуватиметься читання;
2. кількість читаються байтів.
Write - дозволяє записувати дані в буфер (за параметрами аналогічний read);
Seek - дозволяє переміститися в нову позицію в потоці:
1. число, яке вказує на скільки байт потр...