ГОСУДАРСТВЕННОЕ ВЫСШЕЕ УЧЕБНОЕ ЗАВЕДЕНИЕ
«ЗАПОРОЖСКИЙ НАЦИОНАЛЬНЫЙ УНИВЕРСИТЕТ»
МИНИСТЕРСТВА ОБРАЗОВАНИЯ И НАУКИ УКРАИНЫ
АФЕДРА ИНФОРМАЦИОННЫЗ ТЕХНОЛОГИЙ
ОТЧЕТ
с лабораторной работы №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;}