关于定长字符串的疑惑

asuyr 2003-09-12 11:40:59
各位大虾:
小弟最近在写程序的时候发现一个奇怪的问题.百思不得其解,希望各位能帮帮小弟.
问题,发生调用API函数之后.烦请看源代码.
Function ConnectionToMaster()
Dim str As String * 522 '定义了一个定长的字符串.
Dim Name As String
Dim Address As String
Dim StrA As String
If Dn.State = adStateOpen Then
Name = Trim(xiaohao.Servertxt)
Address = WriteAddress & "database.ini"
Call GetPrivateProfileString("database", Name, -1, str, 522, Address)
End Function
由于在读取的字符串没有522个字节.所以就现了.
str="dsn=;uid=;pwd= "
我用&连接把两个变量连接后发现.
strb=str&"database=;"
strb="dsn=;uid=;pwd=             database=;"
使用了 trim 也不能除出
希望能得到各位的帮忙.
...全文
64 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
asuyr 2003-09-12
  • 打赏
  • 举报
回复
daviddavid 兄:
你能详细解译一下吗? 你这个方法可以除去空字符串.
asuyr 2003-09-12
  • 打赏
  • 举报
回复
可不可以把VC写的那个DLL给我看看呀
guoyx 2003-09-12
  • 打赏
  • 举报
回复
strb= Left(str, InStr(str, Chr(0)) - 1)
qibo2002 2003-09-12
  • 打赏
  • 举报
回复
replace(strb," ","") 用这个去掉可以么
daviddivad 2003-09-12
  • 打赏
  • 举报
回复
如果是调用API的话,要去除CHR(0)
strb = left$(str,instr(str,chr(0)) -1) & "database=;"
sunshine781114 2003-09-12
  • 打赏
  • 举报
回复
VB用这个确实是这种情况。我以前也碰到过。
我解决的办法是,VC的函数把这个字符串在转化一下。(我用的是VC做的DLL)
daviddivad 2003-09-12
  • 打赏
  • 举报
回复
strb = trim(str) & "database=;"
射天狼 2003-09-12
  • 打赏
  • 举报
回复
left(str, instr(str, chr(0)) - 1)
yijiansong 2003-09-12
  • 打赏
  • 举报
回复
strb= Left(str, InStr(str, Chr(0)) - 1)

7,762

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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