❶ MFC中,读写ini文件用WritePrivateProfileString写文件 老是覆盖以前的信息,怎么弄
本来就是覆盖的,你写ini不覆盖写它干什么。其实你也可以用c++以追加的方式写入
❷ mfc程序中,已经从ini文件中读取出字符串并转换成cstring对象,如何把此对象转换成unicode类型。
从ini文件中读取出的字符串是GB2312的编码,使用下面函数转换成unicode。int MultiByteToWideChar( UINT CodePage, // code page DWORD dwFlags, // character-type options LPCSTR lpMultiByteStr, // address of string to map int cchMultiByte, // number of bytes in string LPWSTR lpWideCharStr, // address of wide-character buffer int cchWideChar // size of buffer);你这个问题的转换应该是:MultiByteToWideChar(CP_ACP, 0, (LPCTSTR)strSrc, -1, wszTarget, len);(strSrc就是你从ini文件中取出来的字符串的内存地址)len需要先通过以下函数获得:len=MultiByteToWideChar(CP_ACP, 0, (LPCTSTR)strSrc, -1, NULL, 0);
❸ 最近做MFC 想在程序里面打开一个 .ini 文本文件(可以用来编辑)
BOOL WINAPI WritePrivateProfileSection( __in LPCTSTR lpAppName, __in LPCTSTR lpString, __in LPCTSTR lpFileName);BOOL WINAPI WritePrivateProfileString( __in LPCTSTR lpAppName, __in LPCTSTR lpKeyName, __in LPCTSTR lpString, __in LPCTSTR lpFileName);BOOL WINAPI WritePrivateProfileStruct( __in LPCTSTR lpszSection, __in LPCTSTR lpszKey, __in LPVOID lpStruct, __in UINT uSizeStruct, __in LPCTSTR szFile);BOOL WriteProfileInt( LPCTSTR lpszSection, LPCTSTR lpszEntry, int nValue );BOOL WINAPI WriteProfileSection( __in LPCTSTR lpAppName, __in LPCTSTR lpString);BOOL WINAPI WriteProfileString( __in LPCTSTR lpAppName, __in LPCTSTR lpKeyName, __in LPCTSTR lpString);BOOL WriteProfileString( LPCTSTR lpszSection, LPCTSTR lpszEntry, LPCTSTR lpszValue );大概就这几个函数,有的是API函数,有的是CWinApp的方法;具体的内容查一下VC的帮助,里面有示例代码。
❹ MFC ini文件的“节”
[section_搜索_条件1_条件2] 你可以以“_”为条件进行字符串切割,然后取第三和第四个变量进行复制。然后遍历调用。字符串切割的资料网上很多,你如果要的话,留个邮箱,我可以发给你
❺ MFC如何启用配置文件(*.ini)来保存信息
在我们写的程序当中,总有一些配置信息需要保存下来,以便完成程序的功能,最简单的办法就是将这些信息写入INI文件中,程序初始化时再读入.具体应用如下:BOOL WritePrivateProfileString(LPCTSTR lpAppName,LPCTSTR lpKeyName,LPCTSTR lpString,LPCTSTR lpFileName);其中各参数的意义LPCTSTR lpAppName 是INI文件中的一个字段名.LPCTSTR lpKeyName 是lpAppName下的一个键名,通俗讲就是变量名.LPCTSTR lpString 是键值,也就是变量的值,不过必须为LPCTSTR型或CString型的.LPCTSTR lpFileName 是完整的INI文件名,如果没有指定完整路径名,则会在windows目录(默认)查找文件。如果文件没有找到,则函数会在windows目录创建它。CString strName,strTemp;int nAge;strName="张三";nAge=12;::WritePrivateProfileString("StudentInfo","Name",strName,"c:\\stud\\student.ini");此时c:\stud\student.ini文件中的内容如下:[StudentInfo]Name=张三要将学生的年龄保存下来,只需将整型的值变为字符型即可:strTemp.Format("%d",nAge);::WritePrivateProfileString("StudentInfo","Age",strTemp,"c:\\stud\\student.ini");
❻ c++ mfc 读取ini文件里的多组数据
int CLoginDlg::Read()//密码正确返回1,否则返回0;{ UserInfo data;//这是个结构体,存储你的用户名和密码 CFile fd; if (!fd.Open("user.ini",CFile::modeRead)) { AfxMessageBox("读取用户信息失败"); return 0; } GetDlgItemText(IDC_NAME,szName);//你输入的用户名 GetDlgItemText(IDC_PASS,szPass);//你输入的密码 while (fd.Read(&data,sizeof (data))) { if (szName == data.nName && szPass == data.nPass) return 1; } fd.Close();return 0;}从一个对话框弹到另一个对话框,只需要把头文件关联一下,在定义一个类变量就可以了。#include"LoginDlg.h"void CBookDlg::OnAdd(){ CLoginDlg dlg; dlg.DoModal();}
❼ MFC 每次向 ini 文件添加新内容时总是会清楚之前的内容,怎么解决
INI文件是属于程序配置文件,根本键名读取键值的,所以键名不能相同。否则在读取的时候就只能读取到相同键名的第一个键值。所以写入的时候会将键名相同的键值覆盖。如果你不想覆盖,很简单,只要给键名加序号就行了。比如UINT m_uIndex = 0; //全部变量或成员变量CString IniNameIndexStr;IniNameIndexStr.Format(_T("Name_%d"),m_nIndex);WritePrivateProfileString("Info",IniNameIndexStr,strId,"D:\\mfc\\commander.ini"); m_uIndex ++ ;这样每次写入的时候都会使用一个新的键名
❽ mfc ini文件写进去的问题
/************************************************************************//*函数说明:获取应用程序当前目录/*参数:无/*返回值:返回目录路径、CString类型字符串/*By:Koma2009.10.1311:23/************************************************************************/CStringC***Dlg::GetExePath(){charpathbuf[260];intpathlen=::GetMoleFileName(NULL,pathbuf,260);//替换掉单杠while(TRUE){if(pathbuf[pathlen–]=='\')break;}pathbuf[++pathlen]=0x0;CStringfname=pathbuf;returnfname;}
会再debug目录下生成一个文件 你的 之所以不正确是因为 这个返回的只是路径
还应该加上文件名 我已经测试通过
WritePrivateProfileString("StudentInfo","Name",strName,GetExePath()+"\123.ini");
我的回答 昨天被网络吞了 一天
❾ MFC学生成绩学生成绩管理系统如何读写文件
如果是不用数据库,那用操作ini文件的方式很方便.如
节名为姓名
[张三]
yuweng=98
shuxue=99
…
[李四]
yuweng=87
shuxue=95
…
主要是ini文件读写起来方便,定位也方便.
我就是这样做的
❿ MFC怎样在程序中设置.ini文件的属性
c# 判断ini文件是否为只读,并设置为可写string path = Application.StartupPath + "\\setup.ini"; //获取文件路径获取文件是否只读FileAttributes att=File.GetAttributes(path );设置文件的属性File.SetAttributes(path ,FileAttribute.Archive );FileAttribute可以取值为:成员名称 说明 ReadOnly 文件为只读。 Hidden 文件是隐藏的,因此没有包括在普通的目录列表中。 System 文件为系统文件。文件是操作系统的一部分或由操作系统以独占方式使用。 Directory 文件为一个目录。 Archive 文件的存档状态。应用程序使用此属性为文件加上备份或移除标记。 Device 保留供将来使用。 Normal 文件正常,没有设置其他的属性。此属性仅在单独使用时有效。 Temporary 文件是临时文件。文件系统试图将所有数据保留在内存中以便更快地访问,而不是将数据刷新回大容量存储器中。不再需要临时文件时,应用程序会立即将其删除。 SparseFile 文件为稀疏文件。稀疏文件一般是数据通常为零的大文件。 ReparsePoint 文件包含一个重新分析点,它是一个与文件或目录关联的用户定义的数据块。 Compressed 文件已压缩。 Offline 文件已脱机。文件数据不能立即供使用。 NotContentIndexed 操作系统的内容索引服务不会创建此文件的索引。 Encrypted 该文件或目录是加密的。对于文件来说,表示文件中的所有数据都是加密的。对于目录来说,表示新创建的文件和目录在默认情况下是加密的。