我的ini文件为, 
[MyApp]
text1=0     
text2=0
text3=0已知段(MyApp),lpkeyname(text1),lpstring(0),我想删text1=0    这句,请问大家能帮我想想吗?

解决方案 »

  1.   

    关于删除ini文件内容的方法,只能用读写文本文件的方法实现,因为微软没有提供这样的api函数
      

  2.   

    rainstormmaster(暴风雨 v2.0)   :能再说详细点吗, 用什么方法都行,只要是vb就可以,谢谢, 我可以给出100分
      

  3.   

    我假设你的ini文件中没有多余的空格:
    Private Sub Command1_Click()
        Dim filename As String
        filename = "c:\aa.ini"
        Dim findstr As String
        findstr = "text1=panjin1"
        Dim buff() As Byte
        Dim i As Long
        i = FileLen(filename)
        ReDim buff(i - 1)
        Open filename For Binary As #1
        Get #1, , buff
        Close #1
        Dim s As String
        s = StrConv(buff, vbUnicode)
        s = Replace(s, findstr + vbCrLf, "")
        Open filename For Binary As #1
        Put #1, , s
        Close #1
    End Sub
      

  4.   

    谢谢, 我的文件aa.ini为
    [MyApp]
    text1=panjin1
    text2=panjin2
    [MyApp2]
    text3=panjin3我用上面那段
    msbox(s)
    读出来的是分行出来的全部值呀, 我要怎样才能利用s全部值去删固定行驶 text1=panjin1 呢?还想问下   Get #1, , buff  这步是什么意思呢?谢谢?每次都是你在帮我,能告诉我你的大名吗?
      

  5.   

    'API:
    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'Function:
    Function DelIniSec(Section As String, iniFileName As String) As Boolean
        If WritePrivateProfileString(Section, vbNullString, vbNullString,_
           iniFileName) = 0 Then 
        GoTo DelIniSecErr
        Else
            DelIniSec = True
        End If
        
    DelIniSecErr:
        DelIniSec = False
    End Function
      

  6.   

    搞错了,上面的那个是删除Section的
    其实只要改一下,你就知道如何删除key了。你看一下就懂了。
      

  7.   

    //读出来的是分行出来的全部值呀, 我要怎样才能利用s全部值去删固定行驶 text1=panjin1 呢?在我上面的程序中是利用了replace函数,将"text1=panjin1"连同后面的回车换行替换成了""
    这样就删除了该行//还想问下   Get #1, , buff  这步是什么意思呢?谢谢?
    Get #1, , buff  的意思是读出文件内容到数组buff//每次都是你在帮我,能告诉我你的大名吗?
    我的名字是:马畅
      

  8.   

    另外,经 szmickylee的提醒,发现的确可以用ritePrivateProfileString解决你的问题:Option Explicit
    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()
        WritePrivateProfileString "myapp", "text1", vbNullString, "c:\aa.ini"
    End Sub
      

  9.   

    呵呵,大家帮忙而已。 //hand
      

  10.   

    解决了, 太历害了, 我没想到lpstring为空lpkeyname就也会为空了, 两位能留下email吗?谢谢