Смекни!
smekni.com

Лабораторная работа по Операционным системам

ГОСУДАРСТВЕННОЕ ВЫСШЕЕ УЧЕБНОЕ ЗАВЕДЕНИЕ

«ЗАПОРОЖСКИЙ НАЦИОНАЛЬНЫЙ УНИВЕРСИТЕТ»

МИНИСТЕРСТВА ОБРАЗОВАНИЯ И НАУКИ УКРАИНЫ

АФЕДРА ИНФОРМАЦИОННЫЗ ТЕХНОЛОГИЙ

ОТЧЕТ

с лабораторной работы №2

Выполнил:

____________________

(подпись)

студент гр. 4328-1

Глеба Р.Н.

Проверил:

____________________

(подпись)

Бровченко Е.Э.

Запорожье,

2011

Разработать процедуру (и вспомогательную программу) разбора заданной текстовой строки (задается переменной окружения или параметром командной строки), содержащей полное имя файла (путь и имя). Процедура должна определять четыре параметра окружения - буква диска, путь, имя файла и тип файла.

Исходный код

#include <iostream.h>

int main(int argc, char* argv[])

{

int i=0,is,ik;

FILE *fp;

system("cls");

if (argc!=2)

{

cout << "ОШИБКА ПАРАМЕТРА!!!";

return 0;

}

fp=fopen(argv[1],"r");

if (fp==NULL)

{

cout << "ОШИБКА!!! Файл с таким именем не существует!!!";

return 0;

}

fclose(fp);

while (argv[1][i]!=0)

{

if (argv[1][i]==':') //находим двоеточие и выделяем название диска

{

cout << "Диск - " << argv[1][i-1] << argv[1][i] << '&bsol;n';

break;

}

i++;

}

i++;

is=i; //здесь храним позицию первого слеша

while (argv[1][i]!=0)

{

if (argv[1][i]=='&bsol;')

{

ik=i; //находим последний слеш и выделяем путь к файлу

}

i++;

}

cout << "Путь - ";

for (is;is<=ik;is++)

{

cout << argv[1][is];

}

cout << "&bsol;n" << "Имя файла - ";

is=ik+1;

while (argv[1][ik]!=0)

{

if (argv[1][ik]=='.') //находим крайнюю точку и выделяем имя файла

{

i=ik;

}

ik++;

}

for (is;is<i;is++) //все остальное после крайней точки - тип файла

{

cout << argv[1][is];

}

cout << "&bsol;n" << "Тип файла - ";

for (is;is<ik;is++)

{

cout << argv[1][is];

}

return 0;}