Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Задачи по C/С++

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки
На первую страницук этому сообщениюк последнему сообщению

Открыть новую тему     Написать ответ в эту тему

Deft



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
char s[20],s1[20],s3[20];
FILE *F,*F1;
F=fopen(Edit15->Text.c_str(),"rt+");   //файл словаря
if(!F)
{
  ShowMessage("Not opened");
}
int n=Edit16->Text.ToIntDef(4);  //количество букв которое сравнивать
Memo2->Clear();
while(!feof(F))
{
  fgets(s,20,F);
  if(s[strlen(s)-1]=='\n')s[strlen(s)-1]=0;
  int k=strlen(s);
  if(k!=n)continue; //отбираем слова из словаря по введенной длиинне
  Memo2->Lines->Add(s);  //выводим слова в мемо (чтоб прогресс ощущалсо))
}
fclose(F);
ofstream gg("Slovarik.txt");
if(!gg)ShowMessage("!gg");
int m = Memo2->Lines->Count;
for(int i=0;i<m;i++)
{
  gg<<Memo2->Lines->Strings[i].c_str()<<"\n";  //переписываем словарь в новый файл из мемо по одному слову в строке
}
gg.close();
//------------------------------------------------
for(int i=0;i<26;i++)     //разбиваем файл со словарем на 26 файлов по алфавиту
{
  F=fopen("Slovarik.txt","rt+");
  AnsiString Name;
  Name=Name+Eng[i];
  Name=Name+".txt";
  ofstream gg1(Name.c_str());
  while(!feof(F))
  {
    fgets(s,20,F);
    if(s[strlen(s)-1]=='\n')s[strlen(s)-1]=0;
    if(s[0]==Eng[i])
    {
      for(int j=0;j<(int)strlen(s);j++)
      gg1<<s[j];
      gg1<<endl;
    }
  }
  fclose(F);
  gg1.close();
}
//---------------------------------------------------------------------------
F=fopen((Edit14->Text.c_str()),"rt");  //файл с вариантами расшифровки
ofstream outfile(Edit17->Text.c_str());  //файл куда сохраняем результаты (совпадения со словарем)
if(!F)
{
  ShowMessage("Can't open varianty");
}
while(!feof(F))    //варианты
{
  fgets(s,n+1,F);
  fgets(s3,20,F);
  if(s3[strlen(s3)-1]=='\n')s3[strlen(s3)-1]=0;
  AnsiString Name;
  Name=Name+s[0];
  Name=Name+".txt";
  F1=fopen(Name.c_str(),"rt");   //имя файла словаря по первой букве варинта
  while(!feof(F1))  //словарь
  {
    fgets(s1,n+1,F1);
    fgets("",80,F1);
    int t=1;
    for(int i=0;i<n+1;i++)
    if (s[i]!=s1[i])
    {
      t=0;
      break;
    }
    if(t) //если совпало записываем в резулт файл
    {
     for(int i=0;i<n+1;i++)
      outfile<<s[i];
     for(int i=0;i<(int)strlen(s3);i++)
      outfile<<s3[i];
     outfile<<endl;
    }
  }
  fclose(F1);
}

Всего записей: 114 | Зарегистр. 15-12-2005 | Отправлено: 10:24 30-04-2007 | Исправлено: Deft, 10:28 30-04-2007
Открыть новую тему     Написать ответ в эту тему

На первую страницук этому сообщениюк последнему сообщению

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Задачи по C/С++


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru