Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: работа с файлом
Форум программистов > Системное программирование > C, С++ и С Builder > Общие вопросы по С и С++
rossik
Помогите, пожалуйста!
Есть такая задача: дана программа, которая работает с паролями. Все пароли длиной 10 символов записываются в отдельный файл, я его назвала "paroli.txt". Когда появляется новый пароль (вводиться через форму, у меня это Form5->Edit1), программа должна проверять, не записан ли в файле paroli этот новый пароль. Если уже имеется такой, его использовать запрещается (у меня с помощь.формы 10:Form10->ShowModal()и т.д.), если такого пароля нет, он записывается в этот файл.
Вот, что я из себя выжила:
Сначала создаю файл:
if(!FileExists("paroli.txt"))
    { ofstream fout("paroli.txt",ios::out|ios::binary);
      fout<<"";
      fout.close();
    }


Потом проверяю:
ifstream fin ("paroli.txt");
char buf[8];ofstream fout;
if(Form5->Edit1->Text.Length()==10)
    {
    ofstream fout("paroli.txt",ios::in|ios::out|ios::binary);
          if(Form5->Edit1->Text.c_str()==fin>>buf)
          Form10->ShowModal();
       else
      // смещение к концу файла
      fout.seekp(0,ios::end);
      fout<<Form5->Edit1;
      fout<<" ";
     }
      fout.close();
      fin.close();


Для начала, хотела, чтобы сравнивалось хотя бы с первым словом, но даже это не работает(((
alexroot
Я не программист по профессии, но вот пару мыслей.

Паролей то в файле несколько. Так почему не организовали цикл по считыванию паролей и сравниванию
всего массива паролей с вводимым?

Далее, функцией strcmp можно сравнивать Form5->Edit1->Text.c_str() и fin>>buf,
т.е. вместо оператора "==" в строке
if(Form5->Edit1->Text.c_str()==fin>>buf)

воспользуйтесь функцией strcmp.
Если и так не получится, сравнивайте оператором "==" посимвольно все символы массива char[],
fin>>buf;
for ( i = 0; i < 8; i++ )
if ( Form5->Edit1->Text.c_str() [i] == buf [i] )
{
// blablabla
}

Получится у того кто делает wink.gif
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2008 IPS, Inc.