vb.net读写ini文件问题

vb.net读写ini文件问题,第1张

以下是我的办法:OK!

Public Declare Function GetPrivateProfileString Lib "kernel32" Alias "GetPrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As String, ByVal lpDefault As String, ByVal lpReturnedString As String, ByVal nSize As Integer, ByVal lpFileName As String) As Integer

Public Declare Function WritePrivateProfileString Lib "kernel32" Alias "WritePrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As String, ByVal lpString As String, ByVal lpFileName As String) As Integer

写:

WritePrivateProfileString("存储", "账号", textbox1, Application.StartupPath &"\song.ini")

读:

dim s as string

s = string(255," ")

GetPrivateProfileString("存储", "账号", s, s.Length, Application.StartupPath + "\song.ini")

textbox1 =s

1,对于INI文件,可以当做像TXT文件一样来进行读取和写入。

2,先把整个文件度出来,然后找到相应行删除(抛弃)以后,再重新写入文件。

Public Class Form1

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

        Dim MyStr As String = ""

        Dim AllStr As String = ""

        '获取一个可用的文件号

        Dim MyFileNum As Integer = FreeFile()

        '打开指定的文件,进行读取 *** 作

        FileOpen(MyFileNum, "C:\My.ini", OpenMode.Input)

        Do While Not EOF(MyFileNum)

            '读取一行

            MyStr = LineInput(MyFileNum)

            If MyStr <> "b=2" Then

                If AllStr = "" Then

                    AllStr = AllStr & MyStr

                Else

                    AllStr = AllStr & vbCrLf & MyStr

                End If

            End If

        Loop

        FileClose(MyFileNum)   '关闭文件

        '写文件

        Dim MyStream As New System.IO.FileStream("C:\My.ini", IO.FileMode.Create)

        Dim MyWriter As New System.IO.StreamWriter(MyStream, System.Text.Encoding.UTF8)

        MyWriter.WriteLine(AllStr)

        MyWriter.Flush()

        MyWriter.Close()

        MyStream.Close()

    End Sub

End Class

用API吧

Private Declare Function GetPrivateProfileString Lib "kernel32" Alias "GetPrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As String, ByVal lpDefault As String, ByVal lpReturnedString As String, ByVal nSize As Int32, ByVal lpFileName As String) As Int32

Private Declare Function WritePrivateProfileString Lib "kernel32" Alias "WritePrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As String, ByVal lpString As String, ByVal lpFileName As String) As Int32

'读

Public Function GetINI(ByVal Section As String, ByVal AppName As String, ByVal lpDefault As String, ByVal FileName As String) As String

Dim Str As String = LSet(Str, 256)

GetPrivateProfileString(Section, AppName, lpDefault, Str, Len(Str), FileName)

Return Microsoft.VisualBasic.Left(Str, InStr(Str, Chr(0)) - 1)

End Function

'写

Public Function WriteINI(ByVal Section As String, ByVal AppName As String, ByVal WriteString As String, ByVal FileName As String) As Long

WriteINI = WritePrivateProfileString(Section, AppName, WriteString, FileName)

End Function

其中,Section是像[ip]那样的(填里面的就可以了),AppName是“=”前面的项名称,lpDefault是如果没有可用的值,就返回lpDefault,FileName是文件名,WriteString是要写入的值

你所希望的:

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

MsgBox(GetINI("ip", "user_id", "", "D:\DataBase.ini"))

'返回sa

End Sub


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/11494192.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-16
下一篇 2023-05-16

发表评论

登录后才能评论

评论列表(0条)

保存