当前位置:编程学习 > VB >>

vb ini文件 中文读写

用VB调用API函数进行ini文件的读写,想用它作一个小数据库程序,但是好像不能进行中文的读写,只读得出英文与数字,有解决的方法吗?
追问:好像写得了中文的value,但是中文的value读不出来

答案: 

下面写的很清楚,读不同类型的数据用不同的函数

 

GetPrivateProfileInt    '读取整型数据
GetPrivateProfileString   '读取字符型数据(常用,字符型和整型可以相互转换)
WritePrivateProfileString  '写入字符型数据

其中 WritePrivateProfileString 是用来向 INI 文件写信息的,而 GetPrivateProfileInt 和 GetPrivateProfileString 则是用来从 INI 文件中读信息的,前者用于读取整型数据,后者则用于读取字符串型数据。

上述三个 API 函数在 VB 中的申明和说明如下:

   Private Declare Function GetPrivateProfileInt Lib "kernel32" _
Alias "GetPrivateProfileIntA" ( _        ' 返回所读取的长整型值
     ByVal lpApplicationName As String, _     ' 要读取的段 (Section) 名称
     ByVal lpKeyName As String, _             ' 要读取的的键 (Key) 名称
     ByVal nDefault As Long, _                ' 指定默认值,如果读取时出错,则返回该值
     ByVal lpFileName As String) As Long      ' 指定要读的 INI 文件名

Private Declare Function GetPrivateProfileString Lib "kernel32" _
Alias "GetPrivateProfileStringA" ( _     ' 返回所读取的字符串值的真实长度
     ByVal lpApplicationName As String, _     ' 要读取的段 (Section) 名称
     ByVal lpKeyName As Any, _                ' 要读取的的键 (Key) 名称
     ByVal lpDefault As String, _             ' 指定默认值,如果读取时出错,则返回该值
     ByVal lpReturnedString As String, _      ' 指定接收返回值的字符串变量
     ByVal nSize As Long, _                   ' 指定允许字符串值的最大长度
     ByVal lpFileName As String) As Long      ' 指定要读的 INI 文件名

Private Declare Function WritePrivateProfileString Lib "kernel32" _
Alias "WritePrivateProfileStringA" ( _   ' 如果成功返回非 0 值,失败返回 0
     ByVal lpApplicationName As String, _     ' 要写入的段 (Section) 名称
     ByVal lpKeyName As Any, _                ' 要写入的的键 (Key) 名称
     ByVal lpString As Any, _                 ' 要写入的值 (Value),以字符串表示
     ByVal lpFileName As String) As Long      ' 指定要写的 INI 文件名

例:写入   WritePrivateProfileString "字段名","字段的键名(相当变量名)","value","配置文件路径(包括文件名)"

  读出 GetprivateProfileString "字段名","字段里的键名","DefaultValue","接受读取值的变量","255","Path+FileName"

还是举个例子吧。。。

Imports System.Net
Imports System.IO
Imports System.Collections
Public Class Form1

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

        If Dir("c:/tmp.txt") <> "" Then

            Dim sr1 As IO.StreamReader
            sr1 = New System.IO.StreamReader("c:/tmp.txt", System.Text.Encoding.GetEncoding("gb2312"))

            TextBox1.Text = sr1.ReadToEnd()


            sr1.Close()
        Else
            MsgBox("文件不存在")
        End If



    End Sub

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim sr As StreamWriter = New StreamWriter("c:/tmp.txt", False, System.Text.Encoding.Default)
        With sr
            .WriteLine("你好")
            .WriteLine("B")
            .WriteLine("C")
        End With
        sr.Close()

    End Sub

上一个:vb编程的代码和函数
下一个:VB 的编程公式有哪些

CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,