Теми рефератів
> Реферати > Курсові роботи > Звіти з практики > Курсові проекти > Питання та відповіді > Ессе > Доклади > Учбові матеріали > Контрольні роботи > Методички > Лекції > Твори > Підручники > Статті Контакти
Реферати, твори, дипломи, практика » Курсовые обзорные » Клас двійкового файлу, похідний від fstream

Реферат Клас двійкового файлу, похідний від fstream





ign="justify">};

В якості вхідних аргументів конструктор приймає 2 значення. Покажчик на рядок з ім'ям потрібного файлу const char * name, який передається в коснcтруктор базового класу fstream. І цілочисельне значення int p, цей параметр дорівнює 0, якщо користувач хоче створити новий двійковий файл і в нього потрібно записати заголовок і початкові дані, значення приймає 1, якщо збирається скористатися готовим файлом, і все що потрібно зробити це зв'язати потік вводу-виводу з двійковим файлом.

Конструктор без параметрів: _file (): basic_fstream () {};

використовується тільки для можливості створення покажчика на об'єкт класу, без прив'язки до двійкового файлу, це може бути корисно, якщо свідомо не відоме ім'я файлу який буде використовуватися.

Далі, функція bin_file :: set_elem (char * _str);

На вхід приймає рядок (майбутній елемент списку). Встановлює значення полів класу для подальшого додавання в список, вказівником next привласнює значення 0, так як додавання відбувається в кінець списку і даний елемент повинен виявитися завершальним. p align="justify"> Мабуть найважливіший елемент класу bin_file, який і створює структуру такою яка вона є, метод: add_elem ();

Перше, що відбувається, це установка позиції для читання в файлі (7, ios :: beg); Вона встановлюється для читання довжини першого елемента списку (заголовок 3 байти + покажчик на наступний 4 байти = 7 байт ). Якщо після прочитання довжина першого елемента виявилася рівною 0, приходимо до висновку, що список порожній, і додавати потрібно перший елемент. (First_lng == 0) {//список порожній (3, ios :: beg) ;//перший ел-т ((char *) & next, 4) ;//файловий покажчик на слід елем

write ((char *) & length, 4) ;//довжина рядка (str, length) ;//рядок

}

В іншому випадку, у списку вже існують елементи. Тут додавання відбувається складніше, спочатку потрібно дістатися до останнього елемента списку. p align="justify"> Рухаємося за структурою і зчитуємо кожен елемент, поки не знаходимо з нульовим покажчиком. {((Char *) & _next, 4) ;//указ на слід ((char *) & _length, 4) ;//указ на след_pos = tellp () ;//тек позиція

if (_next == 0) {

/***************************************** *** /;

} (_next);

} while (1);

Опинившись у потрібному місці, перше, що відбувається - переміщення позиції читання файлу на Next останнього елемента. Змінюючи це значення з 0 на 4 +4 + Length від поточної позиції, що відповідає кінцю двійкового файлу. Потім переходимо в щойно встановлену позицію, і записуємо туди новий елемент списку. br/>В 

На цьому додавання завершується.

Метод: show_list ();

Назад | сторінка 2 з 5 | Наступна сторінка





Схожі реферати:

  • Реферат на тему: Робота зі структурою двійкового файлу
  • Реферат на тему: Розробка програм по створенню бази даних приладів і додавання першого рядка ...
  • Реферат на тему: Організація списку за допомогою двійкового дерева
  • Реферат на тему: Створення базового класу &Рядок&, рядки ідентифікатора і десяткової рядка. ...
  • Реферат на тему: Лексичні значення цифрових поєднань в китайських чатах як елемент сленгу та ...