Рефераты. Интерпретатор команд MS DOS

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; на метку

}

Страницы: 1, 2, 3



2012 © Все права защищены
При использовании материалов активная ссылка на источник обязательна.