小弟对以下代码一直很不理解,请各位大哥帮忙解读一下?

tong0302 2005-04-07 10:14:43
Public Type ConnStrParam
server As String
database As String
uid As String
pwd As String
End Type




Public Function convertStr(ByVal line As String, t As String) As String
Dim i As Long
Dim n As Long
Dim a As Long
Dim temp As String
n = Len(line)
convertStr = ""
If t = "w" Then
For i = 1 To n
temp = Mid(line, i, 1)
a = Asc(temp)
a = a + 5
temp = Chr(a)
convertStr = convertStr & temp
Next
Else
For i = 1 To n
temp = Mid(line, i, 1)
a = Asc(temp)
a = a - 5
temp = Chr(a)
convertStr = convertStr & temp
Next
End If
End Function


Public Sub writeConnStrFile(ByRef p As ConnStrParam)
On Error GoTo lberr

Dim fpath As String
fpath = App.Path & "\conf.dat"

Dim fs, f
Set fs = CreateObject("Scripting.FileSystemObject")
Set f = fs.CreateTextFile(fpath, True)
f.WriteLine (convertStr(p.server, "w"))
f.WriteLine (convertStr(p.database, "w"))
f.WriteLine (convertStr(p.uid, "w"))
f.WriteLine (convertStr(p.pwd, "w"))

f.Close
Set fs = Nothing
Exit Sub
lberr:
MsgBox Err.Description, vbCritical, CStr(Err.Number)
End Sub

Public Sub getConnStr(ByRef p As ConnStrParam)
On Error GoTo lberr

Dim fpath As String
fpath = App.Path & "\conf.dat"
If FileExist(fpath) Then
Dim fs, f
Set fs = CreateObject("Scripting.FileSystemObject")
Set f = fs.OpenTextFile(fpath, 1, 0)

'-------server----------------------
p.server = convertStr(f.ReadLine(), "r")

'---------database------------------
p.database = convertStr(f.ReadLine(), "r")

'---------uid--------------------------
p.uid = convertStr(f.ReadLine(), "r")

'---------pwd--------------------------
p.pwd = convertStr(f.ReadLine(), "r")
f.Close
Set fs = Nothing
End If
Exit Sub
lberr:
MsgBox Err.Description, vbCritical, CStr(Err.Number)
End Sub


请问怎样通过conf.dat文件读取数据库的路径???
...全文
65 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
XunBaian 2005-04-08
  • 打赏
  • 举报
回复
convertStr函数应该是个字符串移位加密的。
writeConnStrFile是用来保存用户连接信息的。
getConnStr则是用来从配置文件中得到用户连接信息的。

另外,下段函数:
If t = "w" Then
For i = 1 To n
temp = Mid(line, i, 1)
a = Asc(temp)
a = a + 5
temp = Chr(a)
convertStr = convertStr & temp
Next
Else
For i = 1 To n
temp = Mid(line, i, 1)
a = Asc(temp)
a = a - 5
temp = Chr(a)
convertStr = convertStr & temp
Next
End If
这段代码怎么看着那么别扭,何不这样改改呢?

For i = 1 To n
temp = Mid(line, i, 1)
a = Asc(temp)
a = a + IIf(t="w", 5, -5)
temp = Chr(a)
convertStr = convertStr & temp
Next

还有读写操作直接操作结构体就行了,何必一个个的元素操作,代码精简点好啊,可读性好多了。
rolleyuan 2005-04-08
  • 打赏
  • 举报
回复
UP
cuilonggang 2005-04-08
  • 打赏
  • 举报
回复
这可能是sql server的数据库,没有数据库的路径,只有server(服务器)、database(数据库)、uid(登录名)、pwd(密码)。

1,216

社区成员

发帖
与我相关
我的任务
社区描述
VB 数据库(包含打印,安装,报表)
社区管理员
  • 数据库(包含打印,安装,报表)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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