Копіювання файлів

  • Вид работы:
    Курсовая работа (т)
  • Предмет:
    Информационное обеспечение, программирование
  • Язык:
    Украинский
    ,
    Формат файла:
    MS Word
    639,35 Кб
  • Опубликовано:
    2014-01-04
Вы можете узнать стоимость помощи в написании студенческой работы.
Помощь в написании работы, которую точно примут!

Копіювання файлів

МІНІСТЕРСТВО ОСВІТИ І НАУКИ, МОЛОДІ ТА СПОРТУ УКРАЇНИ

КИЇВСЬКИЙ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ ТЕХНОЛОГІЙ ТА ДИЗАЙНУ

ФАКУЛЬТЕТ РИНКОВИХ, ІНФОРМАЦІЙНИХ ТА ІННОВАЦІЙНИХ ТЕХНОЛОГІЙ

Кафедра інформаційних та комп’ютерних технологій





Курсова робота

з дисципліни ”Програмування”

на тему “Копіювання файлів”


Виконав:

студент 3 курсу

групи ЗЧСКС1-11

Поперечний М.В

Перевірив:

викладач

Костьян Н.Л.


Черкаси 2013

ВСТУП

РОЗДІЛ 1. ТЕОРЕТИЧНА ЧАСТИНА

.1 Основні поняття мови програмування C

.2 Інструменти середовища C++Builder які були використані в програмі

РОЗДІЛ 2. Робота з файлами в Сі

.1 Робота з файлами

.2 Відкриття файлу

.3 Відображення файлу

.4 Закриття файлу

РОЗДІЛ 3. ПРАКТИЧНА ЧАСТИНА.

.1 Розробка основних функцій для реалізації програми

.2 Блок - схема програми

.3 Тестування програмного забезпечення

ВИСНОВОК

СПИСОК ВИКОРИСТАНОЇ ЛІТЕРАТУРИ

ДОДАТОК А. ЛІСТІНГ ПРОГРАМИ

копіювання файл програма

ВСТУП

Метою моєї курсової роботи було розробити програму копіювання файлів.

Для розробки даного проекту я обрав мову програмування С в середовищі С++ Builder.

Сі - це мова програмування загального призначення, добре відома своєю ефективністю, економічністю, і переносимістю. Зазначені переваги Сі забезпечують гарну якість розробки майже будь-якого виду програмного продукту. Використання Сі в якості інструментальної мови дозволяє отримувати швидкі і компактні програми. В багатьох випадках програми, написані на Сі, майже однакові за швидкостю з програмами, написаними на мові асемблера. При цьому вони мають кращу наочність і їх більш просто супроводжувати. Сі поєднує ефективність і потужність у відносно малому за розміром мовою. Хоча Сі не містить вбудованих компонент мови, що виконують введення, висновок, розподіл пам'яті, маніпуляцій з екраном або управління процесами.

РОЗДІЛ 1. ТЕОРЕТИЧНА ЧАСТИНА

.1 Основні поняття мови програмування C

(англ. C) - універсальна, процедурна, імперативна мова програмування загального призначення, розроблена у 1972 році Денісом Рітчі у Bell Telephone Laboratories з метою написання на ній операційної системи UNIX.

Хоча, С і було розроблено для написання системного програмного забезпечення, наразі вона досить часто використовується для написання прикладного програмного забезпечення.

С імовірно, є найпопулярнішою у світі мовою програмування за кількістю вже написаного на ній програмного забезпечення, доступного під вільними ліцензіями коду та кількості програмістів, котрі її знають. Реалізації компіляторів для мови С існують для багатьох операційних систем та апаратних архітектур. C здійснила великий вплив на інші мови програмування, особливо на C++, яка спочатку проектувалася, як розширення для С, а також на Java та C#, які запозичили у С синтаксис.

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

Перерахуємо деякі суттєві особливості мови Сі:

● Сі забезпечує повний набір операторів структурного

програмування.

● Сі пропонує незвично великий набір операцій.

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

● Сі підтримує покажчики на змінні і функції.

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

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

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

.2 Інструменти середовища C++Builder які були використані в програмі

C Builder являє собою SDI-додаток, головне вікно якого містить настроювану інструментальну панель (ліворуч) і палітру компонентів (праворуч). Крім цього, за замовчуванням при запуску C Builder з'являються вікно інспектора об'єктів (зліва) і форма нового додатку (праворуч). Під вікном форми додатку знаходиться вікно редактора коду.

Форми є основою додатків C Builder. Створення користувацького інтерфейсу програми полягає в додаванні у вікно форми елементів об'єктів C Builder, званих компонентами. Компоненти C Builder розташовуються на палітрі компонентів, виконаної у вигляді багатосторінкового блокнота. Важлива особливість C Builder полягає в тому, що він дозволяє створювати власні компоненти і налаштовувати палітру компонентів, а також створювати різні версії палітри компонентів для різних проектів.

При розробці програми я використав такі компоненти:- візуальний компонент. Він використовується, щоб дозволити користувачеві вибирати один або більше файлів, для відкриття. Він може бути визначений, переміщенням значка Open Dialog з вкладки Dialogs, або визначаючи змінну TOpenDialog.може бути налаштований для задоволення ваших потреб.

Установка опцій

Перед відображенням діалогу, ви, ймовірно, конфігуріруете його по своїм потребам, встановлюючи властивості діалогу. Ось його основні властивості: Властивість Title

Використовується для установки заголовка діалогу.

Властивість FileName

Видає ім'я файлу для відкриття, задане за замовчуванням. (Інакше, поле імені файлу буде пропуском). При поверненні з діалогу, якщо користувач натиснув, OK, це властивість буде містити (перше) обране ім'я файлу, включаючи його повний шлях (див. перший приклад).

Властивість Filter

Воно дозволяє відображати і вибирати тільки деякі типи файлів. Текст фільтра відображається в спадаючому поле, трохи нижче поля імені файлу.

Властивість FilterIndex

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

Властивість InitialDir

Встановлює початковий каталог в діалозі.

Властивість Options

Це набір TOpenOptions прапорців. Вони є вичерпними. Ключові значення:відкриває файл доступний лише для читанняможе бути відкритий тільки існуючий файлкористувач може вибрати 2 або більше файлів

Властивість FileName

Воно містить повний шлях плюс ім'я обраного файлу.

Воно містить повний шлях плюс назва файлу з множинного вибору файлів. Імена файлів містяться в повернутому значенні TStrings.- візуальний компонент. Він використовується для вибору користувачем імені файлу призначеного для збереження. Він може бути визначений переміщенням значок з вкладки Dialogs або визначаючи змінну TSaveDialog. TSaveDialog може бути налаштований для задоволення ваших потреб.

Установка опцій

Перед відображенням діалогу, ви, ймовірно, конфігуріруете його по своїм потребам, встановлюючи властивості діалогу. Ось його основні властивості:

Властивість Title

Використовується для установки заголовка діалогу.

Властивість FileName

Видає ім'я файлу, задане за замовчуванням для збереження. (Інакше, поле імені файлу буде пропуском).

Властивість DefaultExt

Визначає розширення, яке буде додаватися до призначеного для користувача імені файлу, якщо воно друкується вручну (а не вибирається зі списку файлів). Якщо цих фільтрів розширень два або більше, то це значення ігнорується. Вони повинні бути поміщені в список, що розкривається значень розширення. Дуже дивно!

Властивість Filter

Воно дозволяє відображати і вибирати тільки деякі типи файлів. Текст фільтра відображається в спадаючому поле, трохи нижче поля імені файлу.

Властивість FilterIndex

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

Властивість InitialDir

Встановлює початковий каталог в діалозі.

Властивість FileName

Воно містить повний шлях плюс ім'я обраного файлу.

Властивість Files

Воно містить повний шлях плюс назва файлу з множинного вибору файлів. Імена файлів містяться в повернутому значенні TStrings.

Компонент Button це проста командна кнопка. Командна кнопка Button використовується для реалізації в програмі команд за допомогою обробника події OnClick цього компонента.

Один і той же обробник може обробляти події кількох компонентів TButton (та й не тільки TButton, а й навіть компонентів інших типів). Для визначення того, подія якого саме компонента потрібно обробляти, використовується вбудована мінлива Sender типу TObject, що позначає об'єкт, що викликав дану подію.

Компонент Edit являє собою однорядкове текстове поле, що служить для введення даних користувачем. Основною властивістю компонента Edit, що передає введену інформацію, є властивість Edit1.Text типу String.

Цей компонент є полем редагування призначений для введення і редагування однорядкового тексту. Введений текст є значенням властивості Text.

РОЗДІЛ 2. РОБОТА З ФАЙЛАМИ В С

.1 Робота з файлами

Робота з файлами складається з трьох кроків.

. Файл відкривається. Це означає, що програма "захоплює" заданий по імені файл, повідомляє Windows, що далі вона буде з ним працювати. Даний крок потрібний, щоб не виникало конфліктів, коли кілька програм одночасно хочуть записувати інформацію в один і той же файл. Правда, зчитувати дані з файлу, очевидно, припустимо одночасно безліччю програм, тому в операції відкриття файлу зазвичай уточнюється, що файл відкривається "на читання" (зчитування інформації, яка не змінюється) або "на запис" (дані у файлі модифікуються).

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

. Ведеться робота з файлом. З нього дані або зчитуються, або в нього записуються.

. Файл закривається. Після цієї операції він знову доступний іншим програмам для обробки.

Стандартні операції роботи з файлами, що існують практично у всіх реалізаціях Сі, зберігаються в бібліотеці stdio.h. Функція відкриття файлу називається fopen (). Вона повертає покажчик на об'єкт стандартного (визначеного в цій бібліотеці) типу FILE.

Параметрів у функції fopen () два. Перший - це шлях до файлу (рядок), другий - параметри відкриття файлу.

2.2 Відкриття файлів

Файл є послідовність байтів, що зберігається на якому-небудь фізичному носії інформації. Кожен файл має абсолютний шлях, по якому визначається його місцезнаходження. Як роздільник шляху в Windows може використовуватися як прямий (/), так і зворотний (\) слеш. В інших операційних системах використовується тільки прямий слеш.

Відкриття файлів у файловій системі сервера виробляється за допомогою функції fopen:

int fopen (string filename, string mode [, int use_include_path])

Перший аргумент filename - ім'я файлу або абсолютний шлях до нього. Якщо абсолютний шлях не вказується, то файл повинен знаходиться в поточному каталозі.

Другий аргумент mode говорить про те, для яких дій відкривається файл і може приймати такі значення:(Відкрити файл тільки для читання; після відкриття покажчик файлу встановлюється в початок файлу);+ (Відкрити файл для читання і запису; після відкриття покажчик файлу встановлюється в початок файлу);(Створити новий порожній файл тільки для запису, якщо файл з таким ім'ям вже є вся інформація в ньому знищується);+ (Створити новий порожній файл для читання запису; якщо файл з таким ім'ям вже є вся інформація в ньому знищується);(Відкрити файл для дозапису; дані будуть записуватися в кінець файлу);+ (Відкрити файл для дозапису і читання даних; дані будуть записуватися в кінець файлу);(Прапор, який вказує на роботу (читання і запис) з двійковим файлом; вказується тільки в Windows).

Третій необов'язковий аргумент use_include_path визначає чи повинні шукатися файли в каталозі include_path. (Параметр include_path встановлюється у файлі php.ini).

У разі вдалого відкриття файлу, функція fopen повертає дескриптор файлу, в разі невдачі - false. Дескриптор файлу являє собою покажчик на відкритий файл, який використовується операційною системою для підтримки операцій з цим файлом. Повернений функцією дескриптор файлу необхідно потім вказувати у всіх функціях, які надалі будуть працювати з цим файлом.

Код, наведений нижче, відкриває файл C: / WWW / HTML / file.txt для читання:

<?

$ File = fopen ("c: / www / html / file.txt", "r");(! file)

{("Помилка відкриття файлу");

}

?>

Відкриття двійкового файлу, наприклад, малюнка відбувається таким же чином, тільки з прапором b:

<?

$ File = fopen ("c: / www / html / river.jpg", "rb");(! file)

{("Помилка відкриття файлу");

}

?>

.3 Відображення файлів

Вміст відкритого файлу можна відобразити в браузері за допомогою функції fpassthru:

fpassthru (int file)

Аргумент file є дескриптор файлу.

<?

$ file = fopen ("c: / www / html / pavlovo.jpg", "rb");(! file)

{("Помилка відкриття файлу");

}

{($ file);

}

?>

Для текстових файлів існує ще одна функція відображення readfile:

readfile (string filename)

Звертаємо вашу увагу на те, що в якості аргументу ця функція приймає ім'я файлу, а не його дескриптор:

<?("file.txt");

?>

.4 Закриття файлу

Після того, як ви закінчите роботу з файлом його необхідно закрити. Закриття файлів здійснюється за допомогою функції fclose:


Аргумент file є дескриптор файлу, який необхідно закрити.

РОЗДІЛ 3. ПРАКТИЧНА ЧАСТИНА

.1 Розробка основних функцій для реалізації програми

Опис функції роботи з файлами яка була використана в написанні програми.

int MoveFiles( AnsiString slSourceDir, AnsiString slTargetDir, bool toCopy = true )

{sh;.fFlags = FOF_NOCONFIRMATION | FOF_SILENT | FOF_FILESONLY;.wFunc = toCopy ? FO_COPY : FO_MOVE;.pFrom = slSourceDir.c_str();.pTo = slTargetDir.c_str();.hNameMappings = NULL;.lpszProgressTitle = NULL;SHFileOperation ( &sh );

}

Функція SHFileOperation (оголошена і присутній в модулі ShellApi) взагалі призначена не тільки для видалення файлів, але також ще для переміщення, копіювання та перейменування файлів, і мені можна було обмежитися лише описом її можливостей тільки для роботи з кошиком, але я опишу всі її функції . Функція оголошена як

SHFileOperation (const lpFileOp: TSHFileOpStruct): Integer;

Єдиним її параметром являється структура TSHFileOpStruct. У разі успіху повертає значення 0. Якщо вам потрібно видалити файл безпосередньо, гарантовано минаючи кошик використовуйте функцію DeleteFile.структура використовується для вказівки параметрів функції.

Опишемо її поля:

хендл діалогового вікна, відображає статус операції;

тип виробленої операції:_COPY

копіювати файл._MOVE

перемістити файл.

FO_DELETE

видалити файл._RENAME

перейменувати файл.

покажчик на рядок з ім'ям вихідного файлу.

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

прапори визначають параметри операції._ALLOWUNDO

зберігає інформацію про можливе скасування операції._FILESONLY

виконує операцію тільки для файлів, якщо задана маска файлів._MULTIDESTFILES

вказує, що pTo описує декілька файлів (по одному на кожен файл джерела) замість одного каталогу, куди повинні бути поміщені вихідні файли._NOCONFIRMATION

відповідає "Так для всіх" на всі питання._NOCONFIRMMKDIR

не вимагає підтвердження створення нового каталогу._NO_CONNECTED_ELEMENTS

З версії 5.0. не переміщує пов'язані файли як групу. Тільки переміщує вказані файли._NOCOPYSECURITYATTRIBS

З версії 4.71. Не копіює атрибути безпеки файлу._NOERRORUI

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

Не підтримує рекурсивні операції в підкаталогах, працює тільки в локальному каталозі._RENAMEONCOLLISION

присвоює файлу нове ім'я при операціях копіювання, переміщення або перейменування, якщо файл з вказаним ім'ям вже існує._SILENT

не показує прогрес бар відображає хід операції._SIMPLEPROGRESS

відображає вікно прогрес бару, але не показує імен файлів._WANTMAPPINGHANDLE

Визначає використання поля hNameMappings. Хендл об'єкта повинен бути звільнений функцією SHFreeNameMappings. Вона оголошена в ShellApi як процедура(hNameMappings: THandle);

Приймає значення True якщо операція була перервана або False в іншому випадку.

Хендл об'єкта містить масив структур SHNAMEMAPPING. Кожна структура SHNAMEMAPPINGсодержіт старі й нові шляхи для кожного файлу, з яким проведені операції переміщення, копіювання, або перейменувати. Це поле використовується, якщо встановлений прапор FOF_WANTMAPPINGHANDLE.

покажчик на рядок заголовка для вікна прогресу; використовується тільки, якщо серед прапорів є FOF_SIMPLEPROGRESSфункція для очищення кошика на певному диску (або на всіх), вона не переведена в стандартному модулі ShellApi Delphi, тому ви можете скористатися моїм перекладом, або перевести самі (все вищесказане також справедливо і до функції SHQueryRecycleBin).

Функція оголошена як(Wnd: HWND; pszRootPath: PChar; dwFlags: DWORD): HRESULT;

дебатьківського або діалогового вікно яке може відображатися протягом операції. Цей параметр може бути дорівнює нулю.

Покажчик на рядок PChar містить шлях до кореневого диску на яка знаходитися кошик. Цей параметр може містити адресу рядка, з шляхом до якого-небудь каталогу або підкаталогу, наприклад c: \ windows \ system ... . Це може також містити порожній рядок або Nil. Якщо це значення - порожній рядок або Nil, все кошика на всіх дисках будуть очищені.

Може містити один або декілька параметрів з наступних_NOCONFIRMATION

Не показувати діалог підтвердження видалення всіх файлів із кошика._NOPROGRESSUI

Не показувати прогрес бар відображає видалення файлів із кошика._NOSOUND

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

Вона оголошена як(pszRootPath: PANSIChar; var SHQueryRBInfo: TSHQueryRBInfo): HRESULT;

Де

Покажчик на рядок PChar містить шлях до кореневого диску на яка знаходитися кошик. Цей параметр може містити адресу рядка, з шляхом до якого-небудь каталогу або підкаталогу, наприклад c: \ windows \ system ... .

У Windows 2000, якщо в параметрі pszRootPath пусте значення або Nil, функція повертають помилку E_INVALIDARG. Більш ранні версії операційної системи дозволяють передавати пустий рядок або Nil. Якщо pszRootPath містить пустий рядок або Nil, інформація повертається для всіх кошиків на всіх дисках.

Покажчик на структуру SHQUERYRBINFO, яка отримує інформацію про кошику. Значення поле структури CbSize повинно бути встановлено рівним розміром структури перед запитом цієї функції.

Оголошення цієї структури

= packed record

cbSize: DWORD;Size,NumItems: TLargeInteger;

end;

.2 Блок - схема програми

Загальна блок-схема програми


Блок-схема функції MoveFiles


.3 Тестування програмного забезпечення

Моя написана программа “Копіювання файлів” тестувалась на такому программному забезпеченні: Операційна система ( Windows 7 Ultimate) Mobile Intel Celeron 575, 2000 MHz (12 x 167), 2ГБ ОЗУ.

Розроблювалась моя програма в програмному середовищі Borland С++ Builder 6.

Рис1. Головне вікно програми

Рис2. вікно вибору файлу

Рис3. Вікно збереження файлу

Рис4. Копіювання


ВИСНОВОК

Метою моєї курсової роботи було розробити програму яка копіює файл. Для розробки даного проекту я обрав мову програмування С в середовищі С++ Builder.

Для створення програми я використав такі компоненти середовища розробки програм C++Builder як: ;;;;

Мова С підтримує роботу з файлами. Файли в Сі можна відкривати, переглядати, записувати в них якусь інформацію, копіювати, видаляти, вирізати, додавати в них якусь інформацію для цього в мові Сі є спеціальні функції для роботи з файлами які описані в розділі 2.

Для копіювання файлів я написав функцію MoveFiles яка може використовуватися не тільки для видалення файлів, але також ще для переміщення, копіювання та перейменування файлів.

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

Програма копіює не тільки текстові файл ай архіви, музику, програмиі інші файли.

СПИСОК ВИКОРИСТАНОЇ ЛІТЕРАТУРИ

М. Эллис, Б. Строуструп. Справочное руководство по языку C++ с комментариями: Пер. с англ. - Москва: Мир, 1992. 445с.

Стенли Б. Липпман. C++ для начинающих: Пер. с англ. 2тт. - Москва: Унитех; Рязань: Гэлион, 1992, 304-345сс.

Бруно Бабэ. Просто и ясно о Borland C++: Пер. с англ. - Москва: БИНОМ, 1994. 400с.

В.В. Подбельский. Язык C++: Учебное пособие. - Москва: Финансы и статистика, 1995. 560с.

Ирэ Пол. Объектно-ориентированное программирование с использованием C++: Пер. с англ. - Киев: НИИПФ ДиаСофт Лтд, 1995. 480с.

Т. Фейсон. Объектно-ориентированное программирование на Borland C++ 4.5: Пер. с англ. - Киев: Диалектика, 1996. 544с.

Т. Сван. Освоение Borland C++ 4.5: Пер. с англ. - Киев: Диалектика, 1996. 544с.

Г. Шилдт. Самоучитель C++: Пер. с англ. - Санкт-Петербург: BHV-Санкт-Петербург, 1998. 620с.

У. Сэвитч. C++ в примерах: Пер. с англ. - Москва: ЭКОМ, 1997. 736с.

К. Джамса. Учимся программировать на языке C++: Пер. с англ. - Москва: Мир, 1997. 320с.

В.А. Скляров. Язык C++ и объектно-ориентированное программирование: Справочное издание. - Минск: Вышэйшая школа, 1997. 480с.

Х. Дейтел, П. Дейтел. Как программировать на C++: Пер. с англ. - Москва: ЗАО "Издательство БИНОМ", 1998. 1024с.

ДОДАТОК A

Лістинг програми

#include <vcl.h>

#pragma hdrstop

#include "Unit1.h"

#pragma package(smart_init)

#pragma resource "*.dfm"*Form1;

__fastcall TForm1::TForm1(TComponent* Owner)

: TForm(Owner)

{

}MoveFiles( AnsiString slSourceDir, AnsiString slTargetDir, bool toCopy = true )

{sh;.fFlags = FOF_NOCONFIRMATION | FOF_SILENT | FOF_FILESONLY;.wFunc = toCopy ? FO_COPY : FO_MOVE;.pFrom = slSourceDir.c_str();.pTo = slTargetDir.c_str();.hNameMappings = NULL;.lpszProgressTitle = NULL;SHFileOperation ( &sh );

}__fastcall TForm1::Button1Click(TObject *Sender)

{(OpenDialog1->FileName, SaveDialog1->FileName, true);

}__fastcall TForm1::Button2Click(TObject *Sender)

{(OpenDialog1->Execute())->Text = OpenDialog1->FileName;

}__fastcall TForm1::Button3Click(TObject *Sender)

{(SaveDialog1->Execute())->Text= SaveDialog1->FileName;

}

Похожие работы на - Копіювання файлів

 

Не нашли материал для своей работы?
Поможем написать уникальную работу
Без плагиата!