用c++编程实现简易通讯录管理系统
设计实现通讯录类,用文本文件保存通讯录数据,有简洁的的菜单选择,用于选择各项功能添加,删除,修改,查找,显示所以联系人,关闭...
设计实现通讯录类,用文本文件保存通讯录数据,有简洁的的菜单选择,用于选择各项功能添加,删除,修改,查找,显示所以联系人,关闭
展开
1个回答
2013-07-29
展开全部
1.这里涉及的实际上是把文本文件(.txt或.dat文件)当access之类的数据库处理2.思路:把对应于数据库的一条记录用一个字符串代替,例如:表 table_student{id_s, name_s, age_s, gender_s} 以及其中一条记录 {20091111, 王五, 22, 男}, 用以String strSRecord = "20091111, 王五,22,男"表示,然后存储于文本文件的一行,取出时按","对字符串进行分割,即可得到各字段的值。这里有个类似数据库操作的用RSA加密.dat文件代码,希望对你有用,如下://从用户.dat文件中取出加密的列表信息,用RSA解密后返回
void __fastcall TdmMail::ReadAndDecryUserInfo(TStringList* &pUserInfoList)
{
//判断文件是否存在,并创建
if(!FileExists(m_strUListFile)) // DeleteFile(m_strUListFile);
{
TFileStream *fp = new TFileStream(m_strUListFile, fmCreate|fmShareDenyRead);
if (fp)
delete fp;
} //读出并解密数据
pUserInfoList->LoadFromFile(m_strUListFile);
int k = pUserInfoList->Count;
if (k!=0)
{
for (int i=0; i<k; ++i)
pUserInfoList->Strings[i] = Decrypt(pUserInfoList->Strings[i]);
}
}
//---------------------------------------------------------------------------
//向用户.dat文件中写入pUserInfoList中的用RSA加密后的用户列表信息
void __fastcall TdmMail::WriteAndEncryUserInfo(TStringList* pUserInfoList)
{
TStringList *pTempList = new TStringList();
//判断文件是否存在,并创建 if(!FileExists(m_strUListFile)) // DeleteFile(m_strUListFile);
{
TFileStream *fp = new TFileStream(m_strUListFile, fmCreate|fmShareDenyRead);
if (fp)
delete fp;
} int k = pUserInfoList->Count;
if (k!=0)
for (int i=0; i<k; ++i)
{
pTempList->Add(Encrypt(pUserInfoList->Strings[i]));
//pUserInfoList->Strings[i] = Encrypt(pUserInfoList->Strings[i]);
}
pTempList->SaveToFile(m_strUListFile);
if (pTempList)
delete pTempList;/*************为每个用户创建一个文件夹,用来保存具体配置******************/
String strUserDir = ExtractFilePath(Application->ExeName) + "Users";
if (!DirectoryExists(strUserDir))
CreateDir(strUserDir); String strAll, strEl, strP, strON, strDataF;
bool bTe;
if (k!=0)
for (int i=0; i<k; ++i)
{
strAll = pUserInfoList->Strings[i];
DepartUserInfo(strAll, strEl, strP, bTe, strON);
if (!DirectoryExists(strUserDir + "\\" + strEl))
CreateDir(strUserDir + "\\" + strEl);
strDataF = strUserDir + "\\" + strEl+ "\\" + "Data.dat";
if(!FileExists(strDataF)) // DeleteFile(m_strUListFile);
{
TFileStream *fp = new TFileStream(strDataF, fmCreate|fmShareDenyRead);
if (fp)
delete fp;
}
}
/*************为每个用户创建一个文件夹,用来保存具体配置******************/
}
//---------------------------------------------------------------------------
void __fastcall TdmMail::ReadAndDecryUserInfo(TStringList* &pUserInfoList)
{
//判断文件是否存在,并创建
if(!FileExists(m_strUListFile)) // DeleteFile(m_strUListFile);
{
TFileStream *fp = new TFileStream(m_strUListFile, fmCreate|fmShareDenyRead);
if (fp)
delete fp;
} //读出并解密数据
pUserInfoList->LoadFromFile(m_strUListFile);
int k = pUserInfoList->Count;
if (k!=0)
{
for (int i=0; i<k; ++i)
pUserInfoList->Strings[i] = Decrypt(pUserInfoList->Strings[i]);
}
}
//---------------------------------------------------------------------------
//向用户.dat文件中写入pUserInfoList中的用RSA加密后的用户列表信息
void __fastcall TdmMail::WriteAndEncryUserInfo(TStringList* pUserInfoList)
{
TStringList *pTempList = new TStringList();
//判断文件是否存在,并创建 if(!FileExists(m_strUListFile)) // DeleteFile(m_strUListFile);
{
TFileStream *fp = new TFileStream(m_strUListFile, fmCreate|fmShareDenyRead);
if (fp)
delete fp;
} int k = pUserInfoList->Count;
if (k!=0)
for (int i=0; i<k; ++i)
{
pTempList->Add(Encrypt(pUserInfoList->Strings[i]));
//pUserInfoList->Strings[i] = Encrypt(pUserInfoList->Strings[i]);
}
pTempList->SaveToFile(m_strUListFile);
if (pTempList)
delete pTempList;/*************为每个用户创建一个文件夹,用来保存具体配置******************/
String strUserDir = ExtractFilePath(Application->ExeName) + "Users";
if (!DirectoryExists(strUserDir))
CreateDir(strUserDir); String strAll, strEl, strP, strON, strDataF;
bool bTe;
if (k!=0)
for (int i=0; i<k; ++i)
{
strAll = pUserInfoList->Strings[i];
DepartUserInfo(strAll, strEl, strP, bTe, strON);
if (!DirectoryExists(strUserDir + "\\" + strEl))
CreateDir(strUserDir + "\\" + strEl);
strDataF = strUserDir + "\\" + strEl+ "\\" + "Data.dat";
if(!FileExists(strDataF)) // DeleteFile(m_strUListFile);
{
TFileStream *fp = new TFileStream(strDataF, fmCreate|fmShareDenyRead);
if (fp)
delete fp;
}
}
/*************为每个用户创建一个文件夹,用来保存具体配置******************/
}
//---------------------------------------------------------------------------
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询