Інтерпретатор команд MS DOS

[ виправити ] текст може містити помилки, будь ласка перевіряйте перш ніж використовувати.

скачати

Волзький університет імені В. Н. Татіщева

Факультет "Інформатика і телекомунікації"

Кафедра "Інформатика та системи управління"

















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

з дисципліни: "Системне програмне забезпечення"

Тема:

"Інтерпретатор команд MS DOS"





























Тольятті

Зміст

ВСТУП

1. ТЕОРЕТИЧНА ЧАСТИНА

1.1 Операційна система MS DOS

1.1.1 Файли IO.SYS і MSDOS.SYS

1.1.2 Командний процесор DOS

1.1.3. Базова система введення-виведення

1.1.4 Завантажувач DOS

1.1.5 Діалог користувача з DOS

1.1.6 Команди DOS

1.2 НЕДОЛІКИ Мова програмирования С + +

2. ПРОГРАМНА ЧАСТИНА

2.1 ПОСТАНОВКА ЗАДАЧІ

2.2 ПОБУДОВА АЛГОРИТМУ РІШЕННЯ ЗАДАЧІ

2.2 АЛГОРИТМ

2.3. ОПИС РОЗРОБЛЕНОЇ ПРОГРАМИ

3. ВИСНОВОК

4. СПИСОК ЛІТЕРАТУРИ

5. ДОДАТОК

Введення

MsDos була створена в 1981 р. фірмою Microsoft на замовлення IBM для розробляються тоді комп'ютерів IBM PC. Комп'ютер IBM PC, для якого була написана MsDos, був мало схожий на сучасні комп'ютери - повільний мікропроцесор Intel-8088, 256 Кбайт оперативної пам'яті, без жорсткого диска, алфавітно-цифровий чорно-білий монітор, робота лише з односторонніми 160 - Кбайтних дискетами і т . д. Однак ці можливості були вище, ніж у конкуруючих персональні комп'ютери.

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

За ті два десятки років, які пройшли з моменту появи IBM PC, технічні характеристики комп'ютерів зробили фантастичний ривок вперед. Сучасні комп'ютери перевершують за всіма показниками (швидкодії, обсягу оперативної і дискової пам'яті, можливостям монітора і т.д) комп'ютери початку 80х років в сотні і навіть тисячі разів. Тому фірма Microsoft внесла в MsDos багато змін і доповнень, щоб розширити її можливості та більш ефективно використовувати нові, більш потужні, комп'ютери.

Як наявність автомобілів не скасовує необхідності вміти ходити на своїх двох, так і наявність Windows, Windows 95, Windows NT не ліквідує (хоча і сильно скорочує) потреби в MS DOS і DOS-програмах:

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

  • при пошкодженні таких ОС, як WINDOWS 3.1, WINDOWS for Workgroup і Windows 95 (що трапляється дуже часто) для дослідження причин несправності та їх усунення зазвичай доводиться використовувати MS DOS і DOS-програми.

Операційна система MSDOS в наш час не використовується як основна ОС, але без неї не обійдешся. При установці Windows використовують команди MSDOS. У курсовій роботі я інтерпретую ці команди.

1. Теоретична частина



    1. Операційна система MS DOS



      1. Файли IO.SYS і MSDOS.SYS

Файли IO.SYS і MSDOS.SYS, інакше звані основними системними файлами MS DOS, містять програми MSDOS, які постійно знаходяться в оперативній пам'яті комп'ютера.

1.1.2 Командний процесор DOS

Командний процесор DOS обробляє команди, що вводяться користувачем. Стандартний командний процесор MS DOS має ім'я COMMAND.COM, зазвичай він знаходиться в кореневому каталозі диска, з якого завантажується DOS. Деякі команди користувача, TYPE, DIR, COPY, командний процесор виконує сам. Такі команди називаються внутрішніми. Для виконання інших (зовнішніх) команд користувача командний процесор шукає на дисках програму з відповідним ім'ям і якщо знаходить її, то завантажує в пам'ять і передає їй управління. По закінченні роботи програми командний процесор видаляє програму з пам'яті і виводить повідомлення про готовність до виконання команд.

1.1.3 Базова система введення-виведення

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

1.1.4 Завантажувач DOS

Ще одна програма, яку можна вважати частиною DOS, - це завантажувач DOS. Він знаходиться в першому секторі кожної дискети і в першому секторі логічного диска, з якого відбувається завантаження DOS (тобто диска С:). Назва цієї дуже короткої програми, щоб завантажити в пам'ять системного файлу DOS IO.SYS при початковому завантаженні комп'ютера.

1.1.5 Діалог користувача з DOS

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

Команди DOS складається з імені команди або викликається програми і, можливо, параметрів, розділених пробілами. Введення кожної команди закінчується натисканням клавіші ENTER.

1.1.6 Команди DOS

Будь-яка команда, яка вводиться користувачем в MS DOS, викликає виконання або внутрішньої команди (з COMMAND.COM) або який-небудь програми або командного файлу.

Команди DOS складаються з імені команди і, можливо, параметрів розділених пробілами. Ім'я команди і параметри можуть набиратися як великими, так і малими латинськими літерами. Нижче повністю описані три команди DEL, REN, COPY, детальна характеристика, приклади правильного написання для роботи з ними. Моя програма інтерпретує їх з невеликими змінами.

  • Для видалення файлів в DOS є команда DEL. Формат команди:

DEL Ім'я файлу

В імені файлу можна вживати символи * і?.

Приклади:

DEL *. bak-видалити всі файли з розширенням bak з поточного каталогу.

DEL my.txt - видалення файлу my.txt з поточного каталогу.

  • Для перейменування файлів у DOS є команда REN. Формат команди:

REN ім'я-файла1 ім'я-файла2

Параметри. Параметр ім'я-файла1 задає ім'я переіменуемого файлу, параметр ім'я-файла2-нове ім'я файлу.

Приклади:

REN xxx.doc xxx.txt-перейменування файлу ххх.doc в поточному каталозі. Нове ім'я файлу xxx.txt.

  • Для перейменування файлів у DOS є команда COPY. Формат команди:

COPY ім'я-файла1 ім'я-файла2

В імені файлу можна вживати символи * і?, А також вказувати ім'я диска і каталогу.

Виконання команд. Якщо у параметрі ім'я-файла1 вказано ім'я каталогу, то файли копіюються з цього каталогу в, інакше - з поточного каталогу. Каталог, в якому копіюються файли, можна задати параметром ім'я-файла2 або вказівкою каталогу в параметрі ім'я-файла2. Якщо цей каталог не заданий, то файли копіюються в поточний каталог.

Якщо в другому параметрі команди задане ім'я файлу, то вона вказує нове ім'я копируемого файлу. Символи * і? в імені файлу в другому параметрі команди вказують, що відповідні символи в іменах копійованих файлів при копіюванні не змінюються.

Приклади:

COPY xxx.doc xxx.txt-копіювання файлу ххх.doc в поточному каталозі; створюється файл xxx.txt в поточному каталозі.

COPY a: \ *.* - копіювання всіх файлів з ​​кореневого каталогу диска а: у поточний каталог.

COPY a: \ *.* d: - копіювання всіх файлів з ​​кореневого каталогу диска а: у поточний каталог диска D:.

COPY \ t \ *. doc c: \ *. txt - копіювання всіх файлів з ​​расшіреніем.doc з каталогу \ t поточного диска в поточний каталог диска з:. Файли отримують розширення txt.

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

1.2 Особливості мови програмування С + +

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

for (i = 0; i <strlen (lptr); i + +) {Поділ сткокі на два параметри

if (lptr [i] == '') break; Копіювання в ff до пробілу

ff [i] = lptr [i];}

strncat (fs, ff, i);

У ff копіюється посимвольний рядок розміром i, але при перегляді нового рядка виявлялося символів не i, а в кілька разів більше, доводилося використовувати strncat, вона вирізає не потрібні символи. І так майже на кожному кроці були проблема. Це мої перші зауваження по помилках, можливо їх побільшає.

2. Програмна частина

2.1 Постановка завдання

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

2.2 Побудова алгоритму розв'язання задачі

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

Алгоритм програми

Для реалізації мого завдання використовується наступний алгоритм (малюнок 1.).

Опис алгоритму:

  1. Введення команди з клавіатури

  2. Індіфікація введеної команди

  3. Операції над параметрами команди

  4. Виконання команди

Рис. 1. Алгоритм програми.

2.3 Опис розробленої програми

Моя програма інтерпретує команди MS DOS

У програмі можна користуватися чотирма командами:

  1. Exit-програма завершується.

  2. Copy - копіювання файлу або файлів.

  3. Ren-перейменування файлу.

  4. Del-Видалення файлу.

У програмі я використовую вбудовані бібліотеки С + +. Таб. 1

В основному програма працює із строковими функціями. Ці функції потрібні для обробки рядків з клавіатури, для усунення помилок С + +.

  • strtok-для усунення помилок в рядку

  • strncat-копіює певну кількість символів в змінну.

  • strstr - для пошуку слова в рядку.

  • strcpy-копіює рядок в змінну.

  • strcat-додає рядок в змінну.

  • Strrev-реверсують рядок.

  • Strlen-визначає кількість символів в рядку

  • Strlwr-всі символи перетворює на малі.

  • Strpbrk-шукає певні символи.

Майже в будь-якій програмі не обійдешся без власних функцій, вони спрощують програмування, програма стає більш зрозумілою і зручна у вивченні. У моїй програмі я використовую шість своїх функцій FILCOP, GAD, GIP, DELFILE, RENFILE, COPYES.

  • Filcop - функція для копіювання файлів.

  • Gad - функція для вирізу одного шляху без імені файлу з рядка.

  • Gip - функція для вирізу одного імені файлу з рядка.

  • Delete-функція видалення файлів.

  • Renfile-функція перейменування файлів.

  • Copyes-функція обробна рядок і виклику функції Filcop. Вона розділяє рядок на два параметри копіювання-який файл і куди копіювати з обліків шаблонів (*?).

Після завантаження програми з'явиться меню з запрошенням «>>>>». Тепер можна вводити команди. Після введення команди програма визначає її.

Якщо:

  • EXIT - програма завершується.

  • REN-залишає у введеної рядку тільки два параметри (який файл, на який перейменовувати) і викликає функцію Renfile.

  • Copy-залишає у введеної рядку тільки два параметри (який файл, куди копіювати і що), викликає функцію Copyes.

    • Del-залишає у введеної рядку тільки один параметр (який файл) і викликає функцію Delete.

    У програмі в основному я працюю із строковими змінними і функціями для вирізування шляхів з файлами, шляхів, і т.д. Це все потрібно, щоб використовувати шаблони в деяких командах (Copy, delete).

    Назва бібліотеки

    Опис функції

    Stdlib.h

    Перетворення даних, генерування випадкових чисел, отримання та встановлення змінних середовища SHELL

    Time.h

    Організація імітаційного процесу системного часу

    Iostream.h

    Потоки введення \ виводу

    Conio.h

    Прототип функції затримки

    Stdio.h

    Позначення потокових файлів

    Sys \ stat.h

    Системні виклики для роботи з файлами

    Sys \ types.h

    Системні виклики для роботи з файлами

    Fstream.h

    Операції введення \ виводу у файлах

    String.h

    Обробка рядків

    Fcntl.h

    Прапори

    Io.h

    Організація введення \ виводу

    Math.h

    Використання математичних функцій

    Таблиця 1. Бібліотеки C + +.

    3. Висновок

    У цій роботі були розглянуті команди MS DOS, дозволяють копіювати, видаляти, перейменовувати файли. А також функції та системні виклики мови С + +, щоб організовувати копіювання, видалення файлів і т.д. Ця робота дозволила мені більш поглиблено вивчити роботу з рядковими функціями, різні тонкощі мови і побачити недоліки С + +. У курсовій роботі була створена і описана програма, що дозволяє працювати з файлами у середовищі MS DOS. Дана програма може бути використана студентами для вивчення роботи з файлами в середовищі MS DOS і частково з UNIX, на лабораторних заняттях з вивчення теоретичного матеріалу і придбання практичних навичок з дисципліни «Системне Програмне Забезпечення».

    4. СПИСОК ЛІТЕРАТУРИ

    1. Герхард Франкен, Сергій Молявко MS DOS для користувача .- Київ, 1993.

    2. С. Краков'як Основи організації та функціонування ОС ЕОМ .- М.: Світ, 1998.

    3. С. Кейслер Проектування операційних систем для малих ЕОМ. - М.: Світ, 1996.

    4. Е. Немет, Г. Снайдер Unix. Керівництво системного адміністратора. - Київ.: BHV, 1997.

    5. Дегтярьов Є.К. Введення в Unix .- М.: Пам'ять, 1992.

    6. Свиридов С.В. Системні виклики ОС UNIX.-М.: Пам'ять, 1992.

    7. Дунаєв С. UNIX-сервер. Налаштування, конфігурування, робота в операційному середовищі, Internet-можливості: у 2-х томах.Том 1.-М.: Діалог-МІФІ, 1999.

    8. Дунаєв С. UNIX-сервер. Налаштування, конфігурування, робота в операційному середовищі, Internet-можливості: у 2-х томах.Том 2.-М.: Діалог-МІФІ, 1999.

    9. Шамер Л., Негус К. UNIX (серія «Без проблем»): Пер. з англ. -М.: Біном, 1998.

    10. Кейлінгерт П. Елементи операційних систем. Запровадження для користувачів. Пер. з англ.-М.: Світ, 1995.

    11. Персон Р. Windows 95 в оригіналі. Пер. з англ.-СПБ: BHV-Санкт-Петербург, 1996.

    5. Додаток

    # Include <iostream.h>

    # Include <stdio.h>

    # Include <conio.h>

    # Include <math.h>

    # Include <string.h>

    # Include <ctype.h>

    # Include <stdlib.h>

    # Include <dir.h>

    / / Процедура для копіювання файлу

    / / FILCOP ----------------------------------------------- -----------------------

    int FILCOP (char * sd, char * sf)

    {

    FILE * in, * out;

    in = fopen (sd, "r"); відкриває фаил і копіює в буфер вміст

    out = fopen (sf, "w"); відкриває або створює фаил

    while (! feof (in))

    fputc (getc (in), out); заповнює новий фаил

    fclose (in); fclose (out); закриває фаил

    return (0); возрашет функції значення 0

    }

    Функція для створення повного шляху

    / / ANY ----------------------------------------------- -----------------------

    char * GAD (char * sm, char * namf)

    {Char * zzx, kr [254], * newfil; kr [0] = '\ 0', встановлюємо змінну

    zzx = strpbrk (sm, "\ \"); ішет "\"

    if (zzx) {якщо є

    strcpy (kr, sm); копіює в kr шлях без імені файлу

    strrev (kr); реверс рядки

    newfil = strstr (kr, "\ \"); відрізає до "\"

    strrev (newfil); реверс рядки

    strcat (newfil, namf); добовляют ім'я файлу в дорогу

    strlwr (newfil); зменшує символи

    return newfil;

    }

    else return namf;

    }

    Функція для вирізки тільки Путя

    / / ANY55 ----------------------------------------------- -----------------------

    char * GIP (char * sm)

    {Char * zzx, kr [254], * newfil; kr [0] = '\ 0', встановлюємо змінну

    zzx = strpbrk (sm, "\ \"); ішет "\"

    if (zzx) {якщо є

    strcpy (kr, sm); копіює в kr шлях без імені файлу

    strrev (kr); реверс рядки

    newfil = strstr (kr, "\ \"); відрізає до "\"

    strrev (newfil); реверс рядки

    strlwr (newfil); зменшує символи

    return newfil;

    } Else return sm;

    }

    Видалення фаил (а, ів)

    / / DELFILE ----------------------------------------------- -----------------------

    DELFILE (char * sm)

    {/ / Char * newfil, kr [254]; встановлювати змінні

    struct ffblk ffblk; Структура про фото

    int done;

    done = findfirst (sm, & ffblk, 0); ішет файли

    if (done ==- 1) cout <<"\ nError"; якщо шлях неправельную-помилка

    while (! done) ішет поки не закінчаться файли

    {

    if (remove (GAD (sm, ffblk.ff_name)) == 0) видалення файлу

    cout <<"\ n Delete 1 files"; висновок на екран тексту

    else

    cout <<"\ n File do not delete"; висновок на екран тексту

    done = findnext (& ffblk); Наступне фото

    }

    return (0);

    }

    Перейменування фаіла

    / / RENAME ----------------------------------------------- -----------------------

    RENFILE (char * sm, char * nm)

    {

    strcpy (kr, sm); копіює в kr шлях без імені файлу

    strrev (kr); реверс рядки

    newfil = strstr (kr, "\ \"); відрізає до "\"

    strrev (newfil); реверс рядки

    strlwr (newfil); зменшує символи

    if (rename (sm, nm) == 0) Фу Перейменування фаіла

    cout <<"File renamed"; висновок на екран тексту

    else

    cout <<"File do not renamed"; висновок на екран тексту

    return (0);

    }

    / / COPY ----------------------------------------------- -----------------------

    COPYES (char * sm)

    {

    char * nnj, zt [254], zt2 [254]; int ji = 0, jiz = 0; установка змін

    / / ON>>>> TWO ****************************************** ******

    char ff [254], fs [254], * ptr7, ffg [254], fss [254]; fs [0] = '\ 0', fss [0] = '\ 0', установка змін

    strcpy (kr, sm); копіює в kr шлях без імені файлу

    strrev (kr); реверс рядки

    newfil = strstr (kr, "\ \"); відрізає до "\"

    strrev (newfil); реверс рядки

    strlwr (newfil); зменшує символи

    Поділяємо рядок два параметри на перший

    for (int i = 0; i <strlen (sm); i + +) {if (sm [i] == '') break; ff [i] = sm [i];}

    strncat (fs, ff, i); ptr7 = strstr (sm, ""); Щоб помилок не було

    Поділяємо рядок два параметри на перший

    for (i = 1; i <strlen (ptr7); i + +) {if (ptr7 [i] == '') break; ffg [i-1] = ptr7 [i];}

    strncat (fss, ffg, i-1); Щоб помилок не було

    //************************************************ ******

    char nbb [254]; вуст змін

    Якщо є *

    if (strpbrk (fss ,"*")){

    strrev (fss); nbb [0] = '\ 0', реверс FSS

    for (int q = 0; q <strlen (fss); q + +) {Поділ на колію та фаил

    if (fss [q]! = '\ \') nbb [q] = fss [q]; else break;} копіюємо в NBB шлях

    strrev (fss); strrev (nbb); Реверс

    / / Cout <<"\ n REEEEE ---" <<nbb;

    }

    //____________________________________________________________

    char dt [254], dt2 [254]; dt [0] = '\ 0', dt2 [0] = '\ 0', int fll = 0, ii =- 2; вуст змін

    Поділяємо рядок фаил на зв і розширення

    for (int q = 0; q <strlen (nbb); q + +) {цикл

    if (nbb [q ]=='.') fll = 1; Якщо точка то прапор 1

    if (fll == 0) {dt [q] = nbb [q];} Якщо 0 копіюємо в DT

    if (fll == 1) {ii + +; dt2 [ii] = nbb [q];} Якщо 1 копіюємо в DT2

    }

    //____________________________________________________________

    / / Cout <<"\ n REEEEE111 ---" <<dt;

    / / Cout <<"\ n REEEEE222 ---" <<dt2;

    //------------------------------------------------ ---------------------------

    struct ffblk ffblk; Структура про фото

    int done;

    done = findfirst (fs, & ffblk, 0); ішет Фаил

    if (done ==- 1) cout <<"\ nError"; якщо ні то помилка

    while (! done) початок пошуку

    {

    //++++++++++++++++++++++++++++++++++++++++++++++++ ++++++++++++++++++++++++

    zt [0] = '\ 0', zt2 [0] = '\ 0', fll = 0; ii =- 2; nnj = ffblk.ff_name; ji = 0; jiz = 0; Установка змін

    Поділ перший пар файлу на ім'я і розширення

    for (q = 0; q <strlen (nnj); q + +) {цикл

    if (nnj [q ]=='.') fll = 1; якщо точка то прапор 1

    if (fll == 0) {ji + +; zt [q] = nnj [q];} Якщо 0 копіюємо в ZT

    if (fll == 1) {jiz + +; ii + +; zt2 [ii] = nnj [q];}} Якщо 1 копіюємо в ZT2

    //++++++++++++++++++++++++++++++++++++++++++++++++ ++++++++++++++++++++++++

    zt [ji] = '\ 0', zt2 [jiz-1] = '\ 0', char * rrr; rrr = NULL; Обнулити перем

    char * path2, bpn [254]; установка перем

    path2 = GIP (fss); Обробка моєї функції

    bpn [0] = '\ 0', strcpy (bpn, path2); копір в BPN

    Якщо в другому параметрі є зірочки то з першого парам замінюється другим

    Заміна у другого параметра імені ім'ям першого параметра

    if (dt [0 ]!='*'){ strcat (bpn, dt); strcat (bpn ,".");} else

    {Strcat (bpn, zt); strcat (bpn ,".");}

    if (dt2 [0 ]!='*') strcat (bpn, dt2); else strcat (bpn, zt2);

    Заміна у другого параметра розширення розширенням першого параметра

    strlwr (bpn); зменшення символів

    strcpy (kr, sm); копіює в kr шлях без імені файлу

    strrev (kr); реверс рядки

    newfil = strstr (kr, "\ \"); відрізає до "\"

    strrev (newfil); реверс рядки

    strlwr (newfil); зменшує символи

    FILCOP (GAD (fs, ffblk.ff_name), bpn); Обробка моєї функції та копіювання

    done = findnext (& ffblk); наступний фаил

    }

    //------------------------------------------------ ---------------------------

    return (0);

    }

    / / MAIN ----------------------------------------------- -----------------------

    void main ()

    {

    char s [254], * ptr, * lptr; установка змінних

    gotoxy (16,0); установка тексту в опред. частині екрана

    cout <<"Interpretator commands DOS (COPY, DEL, REN)"; висновок на екран тексту

    gotoxy (0,23); установка тексту в опред. частині екрана

    Enter: мітка

    cout <<"\ n >>>"; висновок на екран тексту

    gets (s); strlwr (s); читання з клавіатури і Зменшення символів

    //++++++++++++++++ DEL ==================

    strcpy (kr, sm); копіює в kr шлях без імені файлу

    strrev (kr); реверс рядки

    newfil = strstr (kr, "\ \"); відрізає до "\"

    strrev (newfil); реверс рядки

    strlwr (newfil); зменшує символи

    ptr = strstr (s, "del"); ішет "del"

    if (strlen (ptr)! = 0) {якщо є

    strcpy (s, ptr); копіює рядок в S

    int i, vb =- 1; char sg [254]; установка змінних

    for (i = 4; i <strlen (s); i + +) {Видаляє "del"

    vb + +;

    sg [vb] = s [i]; заносить в sg

    }

    lptr = NULL; обнуляє lptr

    lptr = strtok (sg ,""); Щоб помилок не було

    DELFILE (lptr); Власна функція

    }

    //++++++++++++++++ REN ==================

    ptr = strstr (s, "ren"); шукає "ren"

    if (strlen (ptr)! = 0) {якщо є

    strcpy (s, ptr); копірут рядок в S

    int i, vb =- 1; char sg [254]; установка змінних

    for (i = 4; i <strlen (s); i + +) {видаляє "ren"

    vb + +;

    sg [vb] = s [i]; заносить в SG

    }

    lptr = NULL; обнуляє lptr

    lptr = strtok (sg ,""); Щоб помилок не було

    //************************************************ ***

    char ff [254], fs [254], * ptr7, ffg [254], fss [254]; устовка змінних

    fs [0] = '\ 0', fss [0] = '\ 0', обнуління

    for (i = 0; i <strlen (lptr); i + +) {Поділ сткокі на два параметри

    if (lptr [i] == '') break; Копіювання в ff до пробілу

    ff [i] = lptr [i];}

    strncat (fs, ff, i); Щоб помилок не було

    ptr7 = strstr (lptr, ""); ішет пробіл

    for (i = 1; i <strlen (ptr7); i + +) {Видаляє прогалину і копіює в FFG

    if (ptr7 [i] == '') break;

    ffg [i-1] = ptr7 [i];}

    strncat (fss, ffg, i); Щоб помилок не було

    //************************************************ ***

    RENFILE (fs, fss); Власна функція

    }

    //++++++++++++++++ COPY ==================

    ptr = strstr (s, "copy"); ешет "copy"

    if (strlen (ptr)! = 0) {Видаляє "copy"

    strcpy (s, ptr); копірут рядок в S

    int i, vb =- 1; char sg [254]; Установка перем

    for (i = 5; i <strlen (s); i + +) {Видаляє copy

    vb + +;

    sg [vb] = s [i]; копіює в SG

    }

    lptr = NULL; обнуляє lptr

    lptr = strtok (sg ,""); Щоб помилок не було

    strcpy (kr, sm); копіює в kr шлях без імені файлу

    strrev (kr); реверс рядки

    newfil = strstr (kr, "\ \"); відрізає до "\"

    strrev (newfil); реверс рядки

    strlwr (newfil); зменшує символи

    ptr = strstr (lptr, "con"); ішет "con"

    if (ptr) {cout <<"\ nNot is function, re-enter"; goto Enter;}

    Якщо є виводить повідомлення

    ptr = strstr (lptr ,"+"); ішет +

    if (ptr) {cout <<"\ nNot is function, re-enter"; goto Enter;}

    Якщо є виводить повідомлення

    COPYES (lptr); Власна функція

    }

    //++++++++++++++++ EXIT ==================

    ptr = strstr (s, "exit"); ішет "exit"

    strcpy (kr, sm); копіює в kr шлях без імені файлу

    strrev (kr); реверс рядки

    newfil = strstr (kr, "\ \"); відрізає до "\"

    strrev (newfil); реверс рядки

    strlwr (newfil); зменшує символи

    if (strlen (ptr)! = 0) exit (EXIT_FAILURE);

    якщо є то вихід програми

    goto Enter; на мітку

    }

Додати в блог або на сайт

Цей текст може містити помилки.

Програмування, комп'ютери, інформатика і кібернетика | Курсова
110.2кб. | скачати


Схожі роботи:
Система команд Структура слова команд Синтаксис команд Групи команд
Архітектура операційної системи MS DOS Структура ОС Ms-Dos розбивка на модулі визначення ст
Робота в ОС Ms-Dos Загрузка основні файли внитрішні та зовнішні команди ос Ms-Dos
Управління пам яттю в МS-DOS Описані основні ф-ції управління памяттю в ОС Ms-Dos
Інтерактивний інтерпретатор
Інтерпретатор muLisp
Інтерпретатор мови Пролог
Характеристики робочих команд
Менеджмент проектних команд
© Усі права захищені
написати до нас