当前位置:编程学习 > C#/ASP.NET >>

求助啊!!vb.net中关于INI文件读取的问题

编写了一个INI文件的读写程序,button2能够成功的写文件,button1却无法正确读取ini文件的内容。
总是返回“错误”,在网上查了很多资料,都是这种格式写的,都说可以正常运行,我的为什么不行啊?
向各位大侠讨教一下!!!

Public Class Form1

    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 Long, _
ByVal lpFileName As String) As Long

    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 Long

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim a As Long
        Dim s As New String(Chr(0), 256)
        a = GetPrivateProfileString("MASTER", "Name", "错误", s, Len(s), "c:\test.ini")
        TextBox1.Text = Microsoft.VisualBasic.Left(s, InStr(s, Chr(0)) - 1)
    End Sub

    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        WritePrivateProfileString("MASTER", "Name", "正确", "c:\test.ini")
        WritePrivateProfileString("MASTER", "age", "26", "c:\test.ini")
    End Sub
End Class
--------------------编程问答-------------------- 项目->属性->设置
设置好名称类型值后。
使用My.Settings.
丢弃ini文件吧 --------------------编程问答-------------------- 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 Long, _
ByVal lpFileName As String) As Long


其中的lpReturnedString  需要用到引用类型的StringBuilder吧。 
我用C#写过 可以给你参考一下


  /// <summary>        /// WindowsAPI 读取Windows ini配置文件
        /// </summary>
        /// <param name="lpApplicationName">配置文件节</param>
        /// <param name="lpKeyName">配置关键字</param>
        /// <param name="lpDefault">默认值</param>
        /// <param name="lpReturnedString">读取值</param>
        /// <param name="nSize">大小</param>
        /// <param name="lpFileName">配置文件名</param>
        /// <returns></returns>
        [System.Runtime.InteropServices.DllImport("kernel32")]
        public static extern long GetPrivateProfileString(string lpApplicationName, string lpKeyName, string lpDefault, System.Text.StringBuilder lpReturnedString, int nSize, string lpFileName);
 
        /// <summary>
        /// WindowsAPI 写Windows ini配置文件
        /// </summary>
        /// <param name="lpApplicationName">配置文件节</param>
        /// <param name="lpKeyName">配置关键字</param>
        /// <param name="nSize">大小</param>
        /// <param name="lpFileName">配置文件名</param>
        /// <returns></returns>
        [System.Runtime.InteropServices.DllImport("kernel32")]
        public static extern long WritePrivateProfileString(string lpApplicationName, string lpKeyName, string lpString, string lpFileName);


 /// <summary>        /// 读取配置文件
        /// </summary>
        /// <param name="AppName">配置文件节</param>
        /// <param name="KeyName">配置关键字</param>
        /// <param name="FileName">配置文件名</param>
        /// <returns></returns>
        public static string ReadConfig(string AppName,string KeyName,string FileName) {
            StringBuilder sb = new StringBuilder(255);
            GetPrivateProfileString(AppName, KeyName, "", sb, sb.Capacity, FileName);
            if (sb == null) return "";
            return sb.ToString();

        } --------------------编程问答-------------------- 用my.settings的话怎么实现数组的存储呢,比如我要存储128个数据,如何实现呢? --------------------编程问答-------------------- 数据多用XML吧
补充:.NET技术 ,  VB.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,