Разделяем строку фаил на наз и расширение
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; на метку
}