}
return si;
}
bool term_here(int k, char* c) // Проверка, что термин уже существует. Существует - true
{if(k>=1)
while(k!=0)//Проверка, что термин уже есть
{ if(!(strcmp(a[k].n,c))){return true;};//Если строки совпали
k--;
}
return false;
}
int work_with_file() //Обработка файла
{int i,k=0,l=0, ch=0,web=-1, lok=0;int o=0;
bool ind=true;bool ypa=false;
FILE *fp;
if((fp=fopen("abcd.txt","r"))==0){ printf("ERROR");return 0;}
while(!(feof(fp))) //Пока не дошли до конца файла
{char s[80]="";
fread(s,80,1,fp);o++;
lok=80; //Длина считываемой строки по усмолчанию - 80
ch=ch+prov_mid_abc(s); //Если влезли в середину трех проблов, посчитать еще один
абзац
lok=prov_mid_word(s,lok,fp);//Скорректированная длина считываемой строки
for(i=0;i<=lok;i++)
{char c[60]="";
ypa=false; // По умолчанию запись разрешена
if((s[i]==32)&&(s[i-1]==32)&&(s[i-2]==32)) ch++;//Если встретили три
пробела, значит новый абзац
if((s[i]!=' ')&&(s[i-1]==' '))//Если переход с пробела на "не пробел"
{k=0;//Обнуление счетчика количества букв
ind=true;//По умолчанию слово - термин
while ((s[i]!=' ')&&(s[i]!=41)&&(s[i]!=63) //Пока не дойдем до конца слова
&&(s[i]!=33)&&(s[i]!=44)&&(s[i]!=46) //(пробела, скобки, знака вопроса,
&&(s[i]!='\0')) //воскл. знака, запятой, точки или конца строки)
{
c[k]=s[i];//Переписываем в c буквы
i++; // i - счетчик текущей позиции в строке
k++; // k - счетчик количества букв в термине
}
for(l=0;l<k;l++) //Цикл проверки, что слово состоит только из
заглавных букв
{
if(!((c[l]>-129)&&(c[l]<-96))) ind=false;
}
if(ind==true) { //Если слово оказалось термином
if(strlen(c)==1) break; //Если это предлог, стоящий в начале
предложения
ypa=term_here(web,c); //Если этот термин уже есть
if (ypa==true) break;//Запись не производится
web++;
a->extend(web);
a[web].n=strdup(c);
a[web].abc=ch; //Запись очередной структуры в массив
}
}
}
}
fclose(fp);
return web;
}
void main()
{int web;
if((web=work_with_file())==0)return;//Если файл не открылся, выйти
sort(web);
for(int r=1;r<=web+1;r++)
{
printf("\n%s",a[r-1].n);
printf(" %d",a[r-1].abc);
if (r%24==0 && r!=0){printf("\nPress any key to continue"); getch();}
};
to_file(web);
}
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.