读ini文件出错,很奇怪!

ksmark 2008-02-28 08:33:13
Module CreateTxtIni
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 Int32, _
ByVal lpFileName As String) As Long
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 Long

Public UID As String
Public UPWD As String
Public UDatabase As String
Public UServer As String
Dim CPath As String

Public Sub ReadFileTxtInI()
Dim strTemp As String
Dim iSvr As Integer
Dim iDB As Integer
Dim iID As Integer
Dim iPWD As Integer
strTemp = LSet(strTemp, 256)
CPath = System.Windows.Forms.Application.StartupPath & "\login.ini"

iSvr = GetPrivateProfileString(GetExecutingAssembly.GetName.Name, "Server", "", strTemp, Len(strTemp), CPath)
说是:strTemp算术运算导致溢出。strTemp监视出数据是"192.168.0.2 另外一个“符号怎么没有?还有后面的Len(strTemp)是256。我觉得很奇怪。希望大家能够帮我一把!!

If iSvr <> 0 Then UServer = Left(strTemp, iSvr)
iDB = GetPrivateProfileString(GetExecutingAssembly.GetName.Name, "Database", "", strTemp, Len(strTemp), CPath)
If iDB <> 0 Then UDatabase = Left(strTemp, iDB)
iID = GetPrivateProfileString(GetExecutingAssembly.GetName.Name, "user_Name", "", strTemp, Len(strTemp), CPath)
If iID <> 0 Then UID = Left(strTemp, iID)
iPWD = GetPrivateProfileString(GetExecutingAssembly.GetName.Name, "User_PWD", "", strTemp, Len(strTemp), CPath)
If iPWD <> 0 Then UPWD = Left(strTemp, iPWD)
End Sub
End Module
...全文
75 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
ksmark 2008-02-29
  • 打赏
  • 举报
回复
搞定了。原来我在定义的时候弄错了。
把Long改成int32就可以了!
谢谢两位!
macenjie 2008-02-29
  • 打赏
  • 举报
回复
用 xml 吧。
比 Ini好很多,代码简洁又方便,容易学的
pjagz 2008-02-28
  • 打赏
  • 举报
回复
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 Int32, _
ByVal lpFileName As String) As Int32

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 Int32




Public Function Writeinif(ByVal StrName As String, ByVal TreName As String, ByVal InpoutStr As String, ByVal DocfileName As String) As Integer
'----------写入文件----------
Dim lp As Integer = 0
Dim sp As String = Application.StartupPath & DocfileName
lp = WritePrivateProfileString(StrName, TreName, InpoutStr, sp)
Return lp

End Function
''' <summary>
''' 读取ini文件。
''' </summary>
Public Function Readinif(ByVal StrName As String, ByVal TreName As String, ByRef InpoutStr As String, ByVal DocfileName As String) As Integer
Dim StrIni As New String(" ", 512)
Dim lp As Integer = 0
Dim sp As String = Application.StartupPath & DocfileName

lp = GetPrivateProfileString(StrName, TreName, "", StrIni, 500, sp)
InpoutStr = Microsoft.VisualBasic.Left(StrIni, lp).Replace(Chr(0), "").Trim

Return lp

End Function

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

Writeinif("数据库", "节名", "123456", "\login.ini")

Dim ReadText As String = ""
Readinif("数据库", "节名", ReadText, "\login.ini")

MsgBox(ReadText)


End Sub

16,555

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧