florianlens
Messages postés6Date d'inscriptionvendredi 21 août 2009StatutMembreDernière intervention17 janvier 2011
-
6 janv. 2011 à 11:09
florianlens
Messages postés6Date d'inscriptionvendredi 21 août 2009StatutMembreDernière intervention17 janvier 2011
-
6 janv. 2011 à 13:13
Bonjour, je dois modifier un code sous C++ Builder et j'ai un problème au niveau des fichiers
bool TUser::readFromFile(std::ifstream &iff)
{
int numgames;
char name[255];
iff>>name;
if (iff.eof()) return false;
code = name;
iff>>numgames;
if (iff.eof()) return false;
games.resize(numgames);
for (int i=0; i<numgames; i++)
{
if (iff.eof()) return false;
iff >> games[i].date;
iff >> games[i].game;
iff >> games[i].numgood;
iff >> games[i].numbad;
}
return true;
}
void __fastcall TForm1::BitBtn1Click(TObject *Sender)
{
if (MaskEdit1->Text == "****")
{
std::ofstream off("users.txt",ios::app);
String code = Edit1->Text;
code = code.LowerCase().Trim();
while (code.Pos(" ")!=0)
{
int p = code.Pos(" ");
code = code.SubString(0,p-1)+code.SubString(p+1,code.Length());
}
bool found = false;
for (unsigned i=0; i<allUsers.size(); i++)
{
if (code==allUsers[i].code)
{
found = true;
break;
}
}
if (found)
{
MessageBoxA(NULL,"L'utilisateur est déjà dans la base de données - Choisir un autre.", "Ok", 0);
return;
}
off<<code.c_str()<<"\t";
off<<0<<"\t"<<endl;
MessageBoxA(NULL,"Utilisateur ajouté avec succès", "Ok", 0);
}
else
{
MessageBoxA(NULL,"Erreur de mot de passe", "Erreur", 0);
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormCreate(TObject *Sender)
{
std::ifstream iff("users.txt");
while (!iff.eof())
{
TUser user;
if (!user.readFromFile(iff)) break;
allUsers.push_back(user);
}
}
Lors de l'ajout d'un utilisateur dans un fichier, son nom (code) est immédiatement crypté (par exemple si je met "florian" , il devient "b15dec" dans le fichier)
cptpingu
Messages postés3837Date d'inscriptiondimanche 12 décembre 2004StatutModérateurDernière intervention28 mars 2023123 6 janv. 2011 à 11:48
Chiffré pas crypté !
Et non, il n'est pas chiffré, c'est juste que tu imprimes l'adresse de ta variable au lieu du contenu...
Est-ce à la lecture ou à l'écriture que tu as une valeur incorrect ?
________________________________________________________________________
Historique de mes créations, et quelques articles:
[ http://0217021.free.fr/portfoliohttp://0217021.free.fr/portfolio]
Merci d'utiliser Réponse acceptée si un post répond à votre question
cptpingu
Messages postés3837Date d'inscriptiondimanche 12 décembre 2004StatutModérateurDernière intervention28 mars 2023123 6 janv. 2011 à 12:46
Donc c'est à l'écriture, non ?
Si tu vois une adresse à la place du nom dans le fichier texte, c'est donc que c'est ta fonction d'écriture qui pose problème.
off<<code.c_str()<<"\t";
C'est étrange parce que ceci est correct.
Essaie ceci:
off << std::string(code.c_str()) << "\t";
Mais normalement c'est identique à la première version.
________________________________________________________________________
Historique de mes créations, et quelques articles:
[ http://0217021.free.fr/portfoliohttp://0217021.free.fr/portfolio]
Merci d'utiliser Réponse acceptée si un post répond à votre question