Вихідники Delphi

Робота з файлами важлива річ у будь-якій мові програмування. Робота з файлами в Delphi дозволяє зчитувати, зберігати інформацію та виконувати інші дії з файлами. У Delphi підтримуються всі операції з файлами - створення, пошук, читання та запис, перейменування як файлів, і до директорій. У Delphi є кілька методів роботи з файлами.

Для "ліричного" вступу слід згадати компоненти Delphi, які можуть працювати з файлами. Вони читають і зберігають свій вміст, рядки типу String, файл текстового формату. Це компонентиListBox,ComboBoxіMemo,розташовані на першій вкладці палітри компонентів.

Кожен рядок компонентівListBox і ComboBoxє об'єктомItems, а Memo - Lines[i],деi- номер рядка, що відраховується від нуля. Додавання рядків до компонентів виконується методамиAddтаInsert:

рядок

Memo1.Lines.Add('Перший рядок'); ComboBox1.Items.Add('Перший рядок');ъ ComboBox1.Items.Add('Другий рядок'); ListBox1.Items.Add('Перший рядок'); ListBox1.Items.Add('Другий рядок');

Метод Add додає новий рядок до кінця. МетодInsertмає додатковий параметр, який вказує, після якого рядка розмістити новий рядок. Доступ до рядків здійснюється так:

ComboBox1.Items[0] := 'Перший рядок змінився'; ListBox1.Items[1] := 'Другий рядок змінився';

У компонента ComboBox додатково є властивістьText, де (як і у компонента Edit) знаходиться текст, що вводиться:

ComboBox1.Text := 'Введений текст';

На виділений в даний момент рядок компонента ComboBox вказує властивістьItemIndexтипуInteger, тобто номер виділеного рядка. Отже, отримати самувиділений рядок компонента ComboBox можна наступною конструкцією:

або, користуючисьоператором приєднання

With ComboBox1 do S := Items[ItemIndex] ;

Ось як за натисканням клавішіEnterможна заносити в цей компонент інформацію, що вводиться в рядок, і видаляти натисканнямEscape:Виділіть на ФорміComboBoxі перейдіть вІнспектор об'єктів, на вкладкуEvents.Клацніть двічі по обробникуOnKeyPress.Система Delphi створить заготівлю обробника. Напишіть:

begin як Key = #13 then ComboBox1.Items.Add(ComboBox1.Text) як Key = #27 then; ComboBox1.Items.Delete(ComboBox1.Items.Count-1); end;

Key- певна в цьому обробнику змінна, що містить код натиснутої клавіші, [i]#13 і #27 - коди клавішEnterтаEscapeвідповідно.Items.Count- кількість рядків, що містяться в компоненті. Оскільки відлік рядків іде від нуля, ми забираємо одиницю. Після чергового видалення кількість рядків змінюється, таким чином Items.Count-1 завжди вказує на останній рядок. Після натискання Escape ми можемо видалити всі рядки. Командою

можна досягти того ж ефекту, тільки видалятимуться перші рядки. Втім, щоб стерти все відразу, є методClear!

Ну а тепер власне про збереження вмісту у файлі. Для цього виконайте команду

Втім, розширення можна поставити будь-яке за бажанням, не обов'язково. Txt, як і взагалі без нього обійтися. Але розширення .txt дозволить легко відкрити файл стандартним віндовським Блокнотом, що буває дуже зручно на етапі написання програми! Для завантаження служить метод LoadFromFile:

Що робити, якщо у своїй програмі ми не працюємо з компонентамиCombobox,ListBoxабоMemo, азберігати інформацію потрібно? Беремо один із компонентів і робимо його невидимим, для цього в Інспекторі Об'єктів ставимо як Visible значення False. Функціональність його від цього не зміниться!

Останній штрих - створимо програму, що зберігає своє становище на екрані в момент закриття і там, що відкривається. Нам потрібно зберегти два параметри - значення властивостей ФормиLeft і Top, це відстань від лівого та верхнього країв екрана відповідно. Ці значення виражаються в пікселях і мають типInteger. Необхідно перевести ці числа в рядок (типString) за допомогою оператораIntToStr. Отже, розмістіть на Формі невидимийListBox, клацніть на порожньому місці Форми, щоб її властивості з'явилися в Інспекторі об'єктів, і перейдіть на вкладкуEvents. Клацніть на обробникуOnCloseі у створеній заготовці напишіть:

begin ListBox1.Items.Clear; ListBox1.Items.Add(IntToStr(Form1.Left)); ListBox1.Items.Add(IntToStr(Form1.Top)); ListBox1.Items.SaveToFile('MyFormPos.txt'); end;

Цей обробник зберігає положення форми на екрані. Тепер напишемо обробник, який поміщає Формула колишнє місце при старті програми. Створіть заготовку обробника подіїOnCreate. Ця подія відбувається в момент "створення" Форми операційною системою. У цей момент і треба надавати їй необхідні властивості. Пишіть:

begin if FileExists('MyFormPos.txt') then begin ListBox1.Items.LoadFromFile('MyFormPos.txt'); Form1.Left := StrToInt(ListBox1.Items[0]); Form1.Top := StrToInt(ListBox1.Items[1]); end; end;

У першому рядку відбувається перевірка існування файлу, адже якщо його не буде, відбудеться помилка. Втім, програма після видачі попередження відкриється там, де була на етапіпроектування, а при закритті потрібний файл буде відтворено! Потім у логічних дужкахbegin/endміститься сам код, який буде виконаний лише за наявності файлу MyFormPos.txt в папці з програмою, так як використовується відносний шлях. Можна вказати конкретне розташування, наприклад, C:\Program Files\MyProg\MyFormPos.txt .

Перевірку існування файлу можна здійснити також з допомогою контролю виняткових ситуацій. Якщо файл не існує, то станеться виняткова ситуація. Перехопивши її за допомогою спеціального оператора, ми зможемо уникнути помилок у програмі.

Звісно, ​​професійні програми зберігають своє становище у РеєстріWindows. Але всьому свій час.

як створити папку? else ShowMessage('Додавання нового каталогу провалилося з помилкою: '+ IntToStr(GetLastError));

як видалити папку?// Видалення цього каталогу if RemoveDir('TestDir') then ShowMessage('TestDir видалено') else ShowMessage('TestDir не видалено, сталася помилка: '+ IntToStr(GetLastError)); end;

Як створити текстовий документ?