vb ini文件 中文读写
用VB调用API函数进行ini文件的读写,想用它作一个小数据库程序,但是好像不能进行中文的读写,只读得出英文与数字,有解决的方法吗?
追问:好像写得了中文的value,但是中文的value读不出来
用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 的编程公式有哪些