работа с файлом

  • Автор темы rossik
  • Дата начала
R

rossik

#1
Помогите, пожалуйста!
Есть такая задача: дана программа, которая работает с паролями. Все пароли длиной 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();
Для начала, хотела, чтобы сравнивалось хотя бы с первым словом, но даже это не работает(((
 
A

alexroot

#2
Я не программист по профессии, но вот пару мыслей.

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

Далее, функцией 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
}
Получится у того кто делает :mellow: