I
Irondust
Вобщем такая проблемка пишу программку, условие такое: из заданного текстового файла удалить все предложения, содержашие указанное слово. Разбивка оставшегося текста должна соответствовать максимальной заполненности строк.
Я тут кой чего написал только не работает почему то нифига <_<
[codebox]#include <fstream.h>
#include <iostream.h>
#include <string.h>
#include <stdio.h>
#include <conio.h>
#define FNAME "test.txt\0"
#define FNAME2 "text.txt\0"
void main ()
{char fname[20]=FNAME;
char fname2[20]=FNAME2;
FILE *in;
FILE *out;
char obr[15];
char b[1]=" ";
char word[15];
char t[1]=".";
int s[50];
char c[1]=" ";
long kon[100];
long na4;
long tek2;
int m=1;
int k=1;
int i=1;
int n=0;
for (i=0;i<40;i++){s=0;}
i=1;
if ((in=fopen(fname,"rb"))==NULL)
{printf("ERROR OPENING FILE %s", fname);
getch ();
return;}
printf("WORD:");
scanf(" %s",obr);
fgetpos (in,&na4);
while (!feof(in)){
while (!feof(in)&& *b!=*t){fscanf(in,"%c",&;}
fscanf(in,"%c",&c); //Это он типа ищет точки в тексте
fscanf(in,"%c",&c);
fgetpos (in,&kon);
i++;
*b=*c;
}
fsetpos (in,&na4);
for (m=1;m<i;m++){
while (!feof(in)&& ftell(in)!=kon[m]){
fscanf(in,"%s ",word);
if (strcmp(word,obr)==0){s[k]=1;//ищет совпадения в тексте и зано
printf("123");}} //сит в массив единичку
fscanf(in,"%c",&c);
fscanf(in,"%c",&c);
k++;}
k=1;
fsetpos (in,&na4);
if ((out=fopen(fname2,"wb"))==NULL)
{printf("ERROR OPENING FILE %s", fname2);
getch ();
return;}
for (n=1;n<i;n++){
while (!feof(in)&& ftell(in)!=kon[n]){
if (s[n]=0){fscanf(in,"s ",&word);//те предложения, у которых единичка
fprintf(out,"s ",word);} // не записывает в другой файл
fscanf(in,"%c",&c);
fscanf(in,"%c",&c);}}
fclose(in);
fclose(out);
getch ();}
[/codebox]
Я тут кой чего написал только не работает почему то нифига <_<
[codebox]#include <fstream.h>
#include <iostream.h>
#include <string.h>
#include <stdio.h>
#include <conio.h>
#define FNAME "test.txt\0"
#define FNAME2 "text.txt\0"
void main ()
{char fname[20]=FNAME;
char fname2[20]=FNAME2;
FILE *in;
FILE *out;
char obr[15];
char b[1]=" ";
char word[15];
char t[1]=".";
int s[50];
char c[1]=" ";
long kon[100];
long na4;
long tek2;
int m=1;
int k=1;
int i=1;
int n=0;
for (i=0;i<40;i++){s=0;}
i=1;
if ((in=fopen(fname,"rb"))==NULL)
{printf("ERROR OPENING FILE %s", fname);
getch ();
return;}
printf("WORD:");
scanf(" %s",obr);
fgetpos (in,&na4);
while (!feof(in)){
while (!feof(in)&& *b!=*t){fscanf(in,"%c",&;}
fscanf(in,"%c",&c); //Это он типа ищет точки в тексте
fscanf(in,"%c",&c);
fgetpos (in,&kon);
i++;
*b=*c;
}
fsetpos (in,&na4);
for (m=1;m<i;m++){
while (!feof(in)&& ftell(in)!=kon[m]){
fscanf(in,"%s ",word);
if (strcmp(word,obr)==0){s[k]=1;//ищет совпадения в тексте и зано
printf("123");}} //сит в массив единичку
fscanf(in,"%c",&c);
fscanf(in,"%c",&c);
k++;}
k=1;
fsetpos (in,&na4);
if ((out=fopen(fname2,"wb"))==NULL)
{printf("ERROR OPENING FILE %s", fname2);
getch ();
return;}
for (n=1;n<i;n++){
while (!feof(in)&& ftell(in)!=kon[n]){
if (s[n]=0){fscanf(in,"s ",&word);//те предложения, у которых единичка
fprintf(out,"s ",word);} // не записывает в другой файл
fscanf(in,"%c",&c);
fscanf(in,"%c",&c);}}
fclose(in);
fclose(out);
getch ();}
[/codebox]