Board logo

标题: 如何使原文件增加数据 [打印本页]

作者: wshzw    时间: 2006-7-23 12:43     标题: 如何使原文件增加数据

请教:
如果原*.ini文件中已有数据,如何能使原*.ini文件在原有数据的下一行再增加一行数据?

下面的代码只能擦除原有数据后再把新数据写入,没能达到上述要求……
   Dim myStr
   myStr = "加一条数据"
   Open "c:\hzw.ini" For Output As #1
   Print #1, myStr
   Close #1
作者: Nothing    时间: 2006-7-23 12:59

使用   Open "c:\hzw.ini" For Append As #1
作者: wshzw    时间: 2006-7-23 13:15

非常感谢!
用 Append 就成功的达到了我一楼的要求,妙!
作者: wshzw    时间: 2006-7-23 21:45

第一楼的要求已经达到了,谢谢!

再次请教,如果要求再复杂些,即:
要增加的数据如果与已有的数据相同,则不增加;否则,增加一行数据。
请指点,谢谢!
作者: Nothing    时间: 2006-7-28 18:46

那你需要先读文件,然后再写文件,可能需要打开两次,这需要你使用算法了。
还有,如果是INI文件,Windows有直接处理INI文件的API。
请看下面的代码
http://www.lihuasoft.net/source/show.php?id=144
作者: qxl584    时间: 2006-7-29 09:10

你是想在INI文件中写配制内容吧?用这两个API吧
WritePrivateProfileString
GetPrivateProfileString
怎么用的话网上找吧
作者: wshzw    时间: 2006-7-29 16:27

谢谢楼上两位的指点!在两位的指点下,我用如下代码达到了要求:

如果"c:\hzw.ini"的内容如下:
=加一条数据1
=加一条数据2
=加一条数据3
=加一条数据
------------------------------
Private Declare Function WritePrivateProfileString Lib "kernel32" Alias "WritePrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpString As Any, ByVal lpFileName As String) As Long

Private Sub Form_Load()
   Dim myStr$, mStr(), i%
   
   myStr = "加一条数据"
   Open "c:\hzw.ini" For Input As #1
   Do While Not EOF(1)
      ReDim Preserve mStr(i)
      Line Input #1, mStr(i)
      i = i + 1
   Loop
   Close #1
   
   For i = 0 To UBound(mStr)
      If Split(mStr(i), "=")(1) = myStr Then Exit Sub
   Next i
   WritePrivateProfileString App.Title, "", myStr, "c:\hzw.ini"
End Sub




欢迎光临 编程开发论坛 (http://bbs.lihuasoft.net/) Powered by Discuz! 6.0.0