Найпростіший файловий менеджер.

Лабораторна робота № 10

Записи

Для оголошення структури запису використовується наступний вид:

Опишемо структуру, у якій будуть зберігатися параметри вікна:

Тепер давайте розберемося, як можна використовувати нашу структуру. Для цього треба визначити перемінну типу структура:

Напишемо приклад, що буде після закриття програми зберігати поточні значення позиції вікна в структурі, а потім цю структуру будемо записувати у файл. Для запису буде використовуватися простий бінарний файл, виходить, скористаємося об'єктом TFileStream.

  1. Створіть новий додаток. У розділі Typeопишіть нашу структуру:

  1. Створіть обработчик події OnClose для форми. Тут ми заповнимо структуру значеннями позиції вікна і збережемо в бінарний файл:

Ну а тепер розберемося з читанням з файлу, що відбувається подібним чином:

 

Збереження структури в динамічній пам'яті

Коли з'являється структура, то можна вказати і її динамічний тип. Для цього потрібно оголосити ще одну перемінну і привласнити їй «^ИмяСтруктуры». Найчастіше як нове ім'я використовують те ж саме ім'я, тільки на початку додають букву «Р» і оголошення це роблять прямо перед оголошенням структури:

У цьому прикладі PWindowsSize - посилання на структуру. Тепер, щоб розмістити нашу структуру не в стеці, а в динамічній пам'яті ми повинні використовувати саме PwindowsSize:

У цьому прикладі ми оголосили перемінну ws типу PWindowsSize. Це значить, що ws – це усього лише покажчик і на самому початку він нульовий. Тепер нам треба цьому покажчику виділити пам'ять розміром зі структуру PWindowsSize. Для цього їй треба привласнити результат роботи функції New. Ця функція виділяє динамічну пам'ять під зазначений як параметр об'єкт і повертає покажчик на цю пам'ять. Після цього в покажчику ws знаходитися виділена пам'ять, підготовлена для використання як структуру PWindowsSize.

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

Пошук файлів

Для початку розберемося з алгоритмом пошуку файлів, а потім докладно розглянемо кожну з необхідних функцій:

FindFirst - відкриває пошук. Як перший параметр виступає маска пошуку. Якщо ми вкажемо конкретний файл, то система знайде його. Але краще шукати більш серйозні речі. Наприклад, ми можемо запустити пошук усіх файлів у корені диска С. Для цього перший параметр повинний бути 'C:\*.*'. Для пошуку тільки файлів ЕХЕ, у папці Fold ти повинний указати 'C:\Fold\*.exe'.

Другий параметр - атрибути файлів, що включаються в пошук. Ми використовуємо faAnyFile, щоб шукати будь-які файли.

faReadOnly - шукати файли з атрибутом ReadOnly (тільки для читання).

faHidden - шукати сховані файли.

faSysFile - шукати системні файли.

faArchive - шукати архівні файли.

faDirectory - шукати директорії.

Напишемо код, що буде визначати розмір зазначеного файлу.

  1. Створіть новий проект і установите на форму два компоненти TEdit і одну кнопку.

  1. По натисканню кнопки напишемо наступний текст:

Найпростіший файловий менеджер.

  1. Створіть новий проект у Delphi і встановіть на нього наступні компоненти: одну кнопку, один рядок у вода й один список елементів.

Для роботи приклада потрібний модуль shellapi, тому давайте відразу додамо його в розділ uses.

  1. Цю програму ми почнемо писати з процедури FormCreate. Створіть обработчик події OnCreate для форми і напишіть в ньому наступне:

Тепер створимо обработчик події OnShow. У ній ми викликаємо іншу процедуру AddFile, що зчитує усі файли з поточної директорії.

 

Процедура AddFile оголошена в розділі privateнашої форми Form1у такий спосіб:

Оголосите цю процедуру так само і потім натисніть клавіші Ctrl+Shift+C і Delphi створить заготівлю для майбутньої процедури:

У цю заготівлю напишіть наступне:

Функція SlashSep і FileTimeToDateTimeStr написані нами й оголошені в розділі varпісля оголошення об'єкта:

А тепер давай подивимося, як же виглядає функція SlashSep:

У результаті одержуємо

 


Дата добавления: 2018-04-15; просмотров: 166; Мы поможем в написании вашей работы!

Поделиться с друзьями:




Мы поможем в написании ваших работ!