谢谢
解决方案 »
- 如何在自己建立的类中访问CDocument\CView\CWinApp等类的指针
- *********对话框控件**********
- 关于VC++连接器的简单问题
- 12个球算法又起风波,一千元大赌判对错!!!各位仲裁……
- 急!在线等待!
- 高分求救!C++&Http
- delphi调用vc的dll的问题(在线等待)
- 一个自定义类中引用视图类的对象,清高手指点
- 请教:如何把一个字符串如:“fb69a260 503111d3 a2d40060 97ba6550”转换为GUID?
- 我该怎么办!!请真正的高手进来!!
- CRecordset::MoveNext()时出现数据截断,是怎么回事????
- 请问矩形框类(CRECT)的高怎样设?
[Param]
Name=aaa
Code=0153
程序中使用GetPrivateProfileString和WritePrivateProfileString进行读取和修改。
不过我不知道这个Temp.ini文件怎么新建?程序是这样的:
CString strFileName=“.\\workplan.ini”;UpdateData();
WritePrivateProfileString("WorkPlan","Time1",m_Time1.Format("%H:%M:%S"),strFileName);//写到文件中去char str[4][9];
GetPrivateProfileString("WorkPlan","Time1","08:00:00",str[0],9,strFileName);
//读取ini文件我现在问题是我根本就不知道开始怎么创建这个workplan.ini这个文件,它要求有什么样的格式?恳请帮助!
void CReadWriteIniDlg::OnButton1()
{
CFile file; //写文件
file.Open("f:\\test.ini",CFile::modeWrite|CFile::modeCreate|CFile::modeNoTruncate);
file.Write("0123456789",10);
file.Close(); //读文件
file.Open("f:\\test.ini",CFile::modeRead|CFile::modeCreate|CFile::modeNoTruncate);
int nLength = file.GetLength();
char * pszBuff = new char[nLength + 1 ];
file.Read(pszBuff,nLength);
pszBuff[nLength] = '\0' ;
MessageBox(pszBuff);
delete [] pszBuff;
file.Close();
}CFile::modeCreate|CFile::modeNoTruncate风格的作用:文件存在就打开,不存在就创建新文件.
|是位或,这儿也可以用+.
Read,Write存取的数据大小限制于64k以内,如果数据大于64K,则用ReadHuge,WriteHuge.二.用 CStdioFilevoid CReadWriteIniDlg::OnButton2()
{
CStdioFile file ; file.Open("f:\\test.ini",CFile::modeReadWrite|CFile::modeCreate|CFile::modeNoTruncate);
//写文件
file.WriteString("ABCDEFG\n");
file.WriteString("abcdefg\n"); //读文件
file.SeekToBegin();//将文件指针移动到最后
char szText[1000];
while(NULL != file.ReadString(szText,999))
MessageBox(szText); file.Close();
}三,以ini的形式存取.
UINT GetProfileInt( LPCTSTR lpszSection, LPCTSTR lpszEntry, int nDefault );
BOOL WriteProfileInt( LPCTSTR lpszSection, LPCTSTR lpszEntry, int nValue );CString GetProfileString( LPCTSTR lpszSection, LPCTSTR lpszEntry, LPCTSTR lpszDefault = NULL );
BOOL WriteProfileString( LPCTSTR lpszSection, LPCTSTR lpszEntry, LPCTSTR lpszValue );
void CReadWriteIniDlg::OnButton3()
{
//写注册表
AfxGetApp()->WriteProfileString("Section","key","value");
//ReadWriteIni.ini(与可执行程序同名)的内容如下
//[Section]
//key=value //如果文件或Section或key不存在,则返回第三个参数的值
CString strVaule = AfxGetApp()->GetProfileString("Section","key","Default");
}
如果不想写在ini中,可添加如下代码,因为SetRegistryKey是保护级的,所以内能在加在C…App中.
BOOL CReadWriteIniApp::InitInstance()
{
//不写ini,直接写在注册表的HKEY_CURRENT_USER\Software\csdn\ReadWriteIni
SetRegistryKey("csdn");
….
}
void CReadWriteIniDlg::OnButton4()
{
CString strFileName = "f:\\test.ini";
//strFileName文件名
WritePrivateProfileString("Section","key","value",strFileName);
char szValue[1000];
GetPrivateProfileString("Section","key","Default",szValue,999,strFileName);
}
我看书配套的光盘上的那个workplan.ini文件跟记事本好象是一样的。但不能象新建文本文档那样新建。
到底这样的ini文件是要写程序才能创建,还是可以象新建文本文档那样在windows操作系统下直接建立呢
谢谢
http://www.csdn.net/Develop/read_article.asp?id=25860
http://www.csdn.net/Develop/read_article.asp?id=26342
你如果想手动创建,就打开记事本,写上内容,比如:
[Section]
Key=Value
然后另存为xx.ini就行了。
如果是在程序中创建,那就
WritePrivateProfileString("Section","Key","Value","xx.ini");
INI文件的结构
INI文件是一种按照特点方式排列的文本文件。每一个INI文件构成都非常类似,由若干段落(section)组成,在每个带括号的标题下面,是若干个以单个单词开头的关键词(keyword)和一个等号,等号右边的就是关键字对应的值(value)。其一般形式如下: [Section1]
KeyWord1 = Valuel
KeyWord2 = Value2
……
[Section2]
KeyWord3 = Value3
KeyWord4 = Value4