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

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

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

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

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





ОТЧЕТ

с лабораторной работы №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] << '\n';

		 break;

		}

	i++;

	}

	i++;

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

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

		{

			if (argv[1][i]=='\\')

			{

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

			}

			i++;

		}

		cout << "Путь - ";

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

					{

					 cout << argv[1][is];

					}

		cout << "\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 << "\n" << "Тип файла - ";

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

					{

					 cout << argv[1][is];

					}

return 0;}