void Player::save() { string filename="Users/"; filename.append(id); filename.append(".txt"); ofstream userfile(filename); userfile << id <<endl; userfile << pwd <<endl; userfile << win <<endl; userfile << lose<<endl; userfile << money <<endl; for(int i=0; i<ITEMTYPE_NUM; i++) userfile << item[i] <<endl; userfile.close(); }
int CAvailabAsymmKeys::GetKeyList(CSortAsymKeyList& sortedAsymKeyList, unsigned nKeyType, int sortflag) { // Erstellt eine sortierte Liste sortedAsymKeyList // durch den int Parameter 'sortflag' wird festgelegt nach welchen Kriterien die Liste sortiert wird: // BY_NAME // BY_FIRSTNAME // BY_KEYTYPE // BY_CREATTIME // BY_PERS_KEYID // nKeyType gibt an, welche Schlüsselbezeichner in die Liste aufgenommen werden: // nKeyType == ASYM_KEY : alle (EC, RSA, DSA) // nKeyType == EC_KEY : nur EC // nKeyType == RSA_KEY : nur RSA // nKeyType == DSA_KEY : nur DSA // nKeyType == RSA_KEY | EC_KEY : RSA und EC // usw. CAsymmKeyAttrib userfile(sortflag); sortedAsymKeyList.RemoveAll(); // Liste neu anlegen if ( (nKeyType == 0) || (nKeyType > 7) ) { // nKeyType hat ungültige Werte return -1; // sortedAsymKeyList ist eine leere Liste } // ermittele die zur Verfügung stehenden Schlüssel(-bezeichner) long filehandle; int pos; int ret; struct _finddata_t fileinfo; CKeyFile KeyfileName; char *ctstr = NULL; char *creatime = NULL; char *name = NULL; char *firstname = NULL; char *keyType = NULL; char *keyID = NULL; CString key_identifier; // ermittele die Dateien, die in PseVerzeichnis liegen CString filename=(CString)PseVerzeichnis+((CString)"/*.*"); LPTSTR help1 = new TCHAR[filename.GetLength()+1]; _tcscpy(help1, filename); char *filename2=help1; filehandle = _findfirst(filename2, &fileinfo); if (filehandle != -1) { // es gibt mindestens eine Datei im Verzeichnis PseVerzeichnis userfile.UserKeyfileName = (CString) fileinfo.name; key_identifier = (CString) fileinfo.name; pos = key_identifier.Find(PSE_FILE_SUFFIX); if (pos != -1) { // key_identifier sind von der Form "xxxx.PSE_FILE_SUFFIX" key_identifier = key_identifier.Left(pos); // entferne PSE_FILE_SUFFIX #ifndef _UNSTABLE ret = KeyfileName.ExtractData(key_identifier, &ctstr, &creatime, &name, &firstname, &keyType, &keyID);// Speicherfreigabe! #endif // Zuweisen der Werte userfile.UTCstring = (CString) ctstr; // Time in seconds since UTC 1/1/70 userfile.CreatTime = (CString) creatime; // Date and time of creation userfile.Name = (CString) name; // Name of owner userfile.Firstname = (CString) firstname; // Firstname of owner userfile.KeyType = (CString) keyType; // Key Type {EC-xxx, RSA-xxx, DSA-xxx} userfile.PersKeyInfo = (CString) keyID; // Prrsönliche Schlüsselkennung des Schlüsselerzeugers // Für Definitionen EC_KEYFILE_IDSTRING, RSA_KEYFILE_IDSTRING, DSA_KEYFILE_IDSTRING siehe DlgAsymKeyCreat.h if (nKeyType == ASYM_KEY) { // alle verfügbaren Schlüssel einfügen sortedAsymKeyList.AddTail(userfile); // Objekt in Liste einfügen } else { // Kombination von verschiedenen Schlüsseltypen möglich if ((nKeyType & EC_KEY) == EC_KEY) { if (userfile.KeyType.Find(EC_KEYFILE_IDSTRING) > -1) sortedAsymKeyList.AddTail(userfile); // Objekt in Liste einfügen } if ((nKeyType & RSA_KEY) == RSA_KEY) { if (userfile.KeyType.Find(RSA_KEYFILE_IDSTRING) > -1) sortedAsymKeyList.AddTail(userfile); // Objekt in Liste einfügen } if ((nKeyType & DSA_KEY) == DSA_KEY) { if (userfile.KeyType.Find(DSA_KEYFILE_IDSTRING) > -1) sortedAsymKeyList.AddTail(userfile); // Objekt in Liste einfügen } } if (ctstr != NULL){ delete ctstr; ctstr = NULL; } if (creatime != NULL){ delete creatime;creatime = NULL; } if (name != NULL){ delete name;name = NULL; } if (firstname != NULL){ delete firstname;firstname = NULL; } if (keyType != NULL){ delete keyType;keyType = NULL; } if (keyID != NULL){ delete keyID;keyID = NULL; } } while(_findnext(filehandle, &fileinfo) == 0) { // es gibt mindestens noch eine weitere Datei im Verzeichnis PseVerzeichnis userfile.UserKeyfileName = (CString) fileinfo.name; key_identifier = (CString) fileinfo.name; pos = key_identifier.Find(PSE_FILE_SUFFIX); if (pos != -1) { // key_identifier sind von der Form "xxxx.PSE_FILE_SUFFIX" key_identifier = key_identifier.Left(pos); // entferne PSE_FILE_SUFFIX #ifndef _UNSTABLE ret = KeyfileName.ExtractData(key_identifier, &ctstr, &creatime, &name, &firstname, &keyType, &keyID);// Speicherfreigabe! #endif // Zuweisen der Werte userfile.UTCstring = (CString) ctstr; // Time in seconds since UTC 1/1/70 userfile.CreatTime = (CString) creatime; // Date and time of creation userfile.Name = (CString) name; // Name of owner userfile.Firstname = (CString) firstname; // Firstname of owner userfile.KeyType = (CString) keyType; // Key Type {EC-xxx, RSA-xxx, DSA-xxx} userfile.PersKeyInfo = (CString) keyID; // Prrsönliche Schlüsselkennung des Schlüsselerzeugers // Für Definitionen EC_KEYFILE_IDSTRING, RSA_KEYFILE_IDSTRING, DSA_KEYFILE_IDSTRING siehe DlgAsymKeyCreat.h if (nKeyType == ASYM_KEY) { // alle verfügbaren Schlüssel einfügen sortedAsymKeyList.AddTail(userfile); // Objekt in Liste einfügen } else { // Kombination von verschiedenen Schlüsseltypen möglich if ((nKeyType & EC_KEY) == EC_KEY) { if (userfile.KeyType.Find(EC_KEYFILE_IDSTRING) > -1) sortedAsymKeyList.AddTail(userfile); // Objekt in Liste einfügen } if ((nKeyType & RSA_KEY) == RSA_KEY) { if (userfile.KeyType.Find(RSA_KEYFILE_IDSTRING) > -1) sortedAsymKeyList.AddTail(userfile); // Objekt in Liste einfügen } if ((nKeyType & DSA_KEY) == DSA_KEY) { if (userfile.KeyType.Find(DSA_KEYFILE_IDSTRING) > -1) sortedAsymKeyList.AddTail(userfile); // Objekt in Liste einfügen } } if (ctstr != NULL){ delete ctstr; ctstr = NULL; } if (creatime != NULL){ delete creatime;creatime = NULL; } if (name != NULL){ delete name;name = NULL; } if (firstname != NULL){ delete firstname;firstname = NULL; } if (keyType != NULL){ delete keyType;keyType = NULL; } if (keyID != NULL){ delete keyID;keyID = NULL; } } } _findclose(filehandle); } return 0; }