我现在在用VB作项目,其中有一步是生成固定格式的文件,共两个文件,一个是.ini文件,一个是xml格式的文件。
.ini文件的格式如下:================================================================
[COMMON]
FolderPath=C:\Documents and Settings\ww[ProcessDirector]
FolderPath=C:\SYNPDInOutInfo[SYNERGY]
FolderPath=C:\SYNMemRead[LAUNCHER]
Init_EXE=xxx.exeProjectCancell_EXE=xxx.exePD_ProjectOutput_EXE=xxx.exeSY_ProjectRegist_EXE=xxx.exe
=================================================================
先说.ini文件,我需要往.ini文件中添加内容,比如没有
[SYNERGY]
FolderPath=C:\SYNMemRead这个节点,我需要新建这个节点,并添加内容,这一步实现过程是使用了一个API,如下:
If SetIniFileString(" SYNERGY ", "FolderPath", TxtSYPath.Text, _
strIniPath) = False Then
MsgError "出力失败"
Exit Sub
End If
调用的SetIniFileString函数如下:
Public Function SetIniFileString(SecName As String, KeyName As String, _
DataStr As String, IniName As String) As Boolean
SetIniFileString = True
On Error GoTo lError:
WritePrivateProfileString SecName, KeyName, DataStr, IniName
Exit Function
lError:
SetIniFileString = False
End Function
利用的API--WritePrivateProfileString如下:
Private Declare Function WritePrivateProfileString Lib "kernel32" Alias "WritePrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As String, ByVal lpString As Any, ByVal lpFileName As String) As Long
程序能够正常实现添加节点,但是,有个缺点,这些程序虽然能够添加SYNERGY节点,但是添加的位置是文件末尾,我想要的结果是添加到固定位置,即添加到节点[ProcessDirector]和[LAUNCHER]之间,而不是文件末尾。请高手们救救我吧,搞不定了,拜托了。
第二个xml格式文件如下:
<INIT>
<SYNERGY>
<ServerPort>5</ServerPort>
<CMDBID>1</CMDBID>
<CMDBPassword>2</CMDBPassword>
<CSDBID>3</CSDBID>
<CSDBPassword>4</CSDBPassword>
</SYNERGY>
<ProcessDirector>
<ServerName>192.168.1.230</ServerName>
<DBID>sa</DBID>
<DBPassword>0000</DBPassword>
</ProcessDirector>
<Common>
<Password>6</Password>
</Common>
</INIT>
如果不存在INIT节点下的ProcessDirector节点,则新建ProcessDirector节点,新建位置是固定的,即在SYNERGY节点和Common节点中间。实现程序如下:
If IXMLNodeFirst.selectSingleNode("ProcessDirector") Is Nothing Then
Set IXMLNodeValue = IXML_Document.createElemen("ProcessDirector")
IXMLNodeValue.appendChild IXML_Document.createTextNode(vbCr)
IXMLNodeFirst.appendChild IXMLNodeValue
End If
这个程序也有一个缺陷,就是虽然能正常生成ProcessDirector节点,但它是添加到文件末尾,而不是固定位置,即在SYNERGY节点和Common节点中间。
请高手们帮帮我吧,拜托了,怎么样才能使添加的文件内容在固定位置呢?
.ini文件的格式如下:================================================================
[COMMON]
FolderPath=C:\Documents and Settings\ww[ProcessDirector]
FolderPath=C:\SYNPDInOutInfo[SYNERGY]
FolderPath=C:\SYNMemRead[LAUNCHER]
Init_EXE=xxx.exeProjectCancell_EXE=xxx.exePD_ProjectOutput_EXE=xxx.exeSY_ProjectRegist_EXE=xxx.exe
=================================================================
先说.ini文件,我需要往.ini文件中添加内容,比如没有
[SYNERGY]
FolderPath=C:\SYNMemRead这个节点,我需要新建这个节点,并添加内容,这一步实现过程是使用了一个API,如下:
If SetIniFileString(" SYNERGY ", "FolderPath", TxtSYPath.Text, _
strIniPath) = False Then
MsgError "出力失败"
Exit Sub
End If
调用的SetIniFileString函数如下:
Public Function SetIniFileString(SecName As String, KeyName As String, _
DataStr As String, IniName As String) As Boolean
SetIniFileString = True
On Error GoTo lError:
WritePrivateProfileString SecName, KeyName, DataStr, IniName
Exit Function
lError:
SetIniFileString = False
End Function
利用的API--WritePrivateProfileString如下:
Private Declare Function WritePrivateProfileString Lib "kernel32" Alias "WritePrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As String, ByVal lpString As Any, ByVal lpFileName As String) As Long
程序能够正常实现添加节点,但是,有个缺点,这些程序虽然能够添加SYNERGY节点,但是添加的位置是文件末尾,我想要的结果是添加到固定位置,即添加到节点[ProcessDirector]和[LAUNCHER]之间,而不是文件末尾。请高手们救救我吧,搞不定了,拜托了。
第二个xml格式文件如下:
<INIT>
<SYNERGY>
<ServerPort>5</ServerPort>
<CMDBID>1</CMDBID>
<CMDBPassword>2</CMDBPassword>
<CSDBID>3</CSDBID>
<CSDBPassword>4</CSDBPassword>
</SYNERGY>
<ProcessDirector>
<ServerName>192.168.1.230</ServerName>
<DBID>sa</DBID>
<DBPassword>0000</DBPassword>
</ProcessDirector>
<Common>
<Password>6</Password>
</Common>
</INIT>
如果不存在INIT节点下的ProcessDirector节点,则新建ProcessDirector节点,新建位置是固定的,即在SYNERGY节点和Common节点中间。实现程序如下:
If IXMLNodeFirst.selectSingleNode("ProcessDirector") Is Nothing Then
Set IXMLNodeValue = IXML_Document.createElemen("ProcessDirector")
IXMLNodeValue.appendChild IXML_Document.createTextNode(vbCr)
IXMLNodeFirst.appendChild IXMLNodeValue
End If
这个程序也有一个缺陷,就是虽然能正常生成ProcessDirector节点,但它是添加到文件末尾,而不是固定位置,即在SYNERGY节点和Common节点中间。
请高手们帮帮我吧,拜托了,怎么样才能使添加的文件内容在固定位置呢?
解决方案 »
- 关于取消部分键盘按键的问题
- vb 图像处理 比较不同 透明
- Listbox的checkbox用法
- 求代码~~~~~关于验证登陆的~~~~~~~~~
- vb群6537626 才57个人. 大家加啊.不是我创的,是上面的网友
- 请问使用access xp创建的mdb文件要用哪个版本的OLE DB驱动程序才能打开?
- 如何保存picturebox里的画
- vb中如何对txt文本进行处理!紧急帮助!50分!!!!
- ado操作foxpro的问题.
- 如何连接帮助文件?
- vb6.0如何获取ie中用showmodeldialog或showmodelessdialog打开的对话框中的网页
- 求助:VB编程一个数据库表的一列对另一数据库的字段相同列添加数据(表格型如)
实在不行就用一个空的 ini 文件,按次序逐个 SetIniFileString,然后将文件覆盖到正式的文件名上,xml 同理。
http://blog.csdn.net/zcsor/archive/2007/03/07/1522705.aspx实际上我一直都是用OPEN语句去处理这些文件,操作INI的API绝对是dàbiàn,用起来参数很麻烦还得自己写函数,不如OPEN语句来的直接。
提一点谬论,嘿嘿,偶是业余的。