Ejemplo n.º 1
0
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();
}
Ejemplo n.º 2
0
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;
}