广告广告
  加入我的最爱 设为首页 风格修改
首页 首尾
 手机版   订阅   地图  繁体 
您是第 2777 个阅读者
 
发表文章 发表投票 回覆文章
  可列印版   加为IE收藏   收藏主题   上一主题 | 下一主题   
sob790717
数位造型
个人文章 个人相簿 个人日记 个人地图
小人物
级别: 小人物 该用户目前不上站
推文 x17 鲜花 x27
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片
推文 x0
[Basic][求助] 无法同时显示两行从ini档中读取过来的文字
不好意思又遇到难题而来拜托各位了
我有点不知道该如何描述此问题


目前我想用 GetPrivateProfileString API 从 ini 档中读取两行关于一些执行档路径的文字
然后利用 msgbox 的方式将这两航资讯同时显 ..

访客只能看到部份内容,免费 加入会员 或由脸书 Google 可以看到全部内容



[ 此文章被sob790717在2010-07-20 18:32重新编辑 ]


献花 x0 回到顶端 [楼 主] From:台湾中华电信 | Posted:2010-07-20 07:17 |
ebolaman 手机 会员卡
个人文章 个人相簿 个人日记 个人地图
特殊贡献奖

级别: 副版主 该用户目前不上站
版区: 程式设计
推文 x38 鲜花 x458
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片

Form1 的 Command1 后面

原本
复制程式
MsgBox SPPBuff1 & SPPBuff2


改成
复制程式
MsgBox KillNull(SPPBuff1) & KillNull(SPPBuff2)



并且在 Form1 程式码区或其他 Module 区加上一个函数:
复制程式
Public Function KillNull(ByVal S As String) As String '只杀右边的 ChrW(0)

Dim m As Long

  m = InStr(1, S, vbNullChar)
  KillNull = Left(S, m - 1)
  
End Function


--------------------------

由于 SPPBuff1 与 SPPBuff2 是从 GetPrivateProfileString 的 API 读取来的
而读取回来的字串长度都是 255
可是前面不是才几个字而已吗? 那么后面那一大串又是什么东西

用 Trim() 没用,因为后面填满的是 Null 字元
我自己也搞不太懂 NULL 的用法
这边有写到关于 Null, Nothing, 空字串, Empty 的区别,可以看一下
http://www.chinavb.net/...p?id=1714

你可以加一个 Msgbox AscW(Mid(SPPBuff1,200,1))  叫程式显示出 SPPBuff1 第 200 个位置的字元的 ASCII
结果会是 0
而 ChrW(0) 即是 NULL,正确来说是 VbNullChar
而 VbNullChar 与 VbNullString 好像又不太一样,这我也搞不清楚

这里我是用 KillNull 把原本长度 255 的字串后面的 Null 全部砍掉
而侦测时就要用 VbNullChar 而不能用 VbNullString

使用资料库读取也会用到这个,看说明是用 Trim(Str & "") 就可以解决了
这里不能这样用,我也不知道为啥

此文章被评分,最近评分记录
财富:50 (by 三仙) | 理由: 因为您的参与,让程式设计更容易!!


My BOINC stats :

献花 x2 回到顶端 [1 楼] From:台湾台湾宽频 | Posted:2010-07-20 19:08 |

首页  发表文章 发表投票 回覆文章
Powered by PHPWind v1.3.6
Copyright © 2003-04 PHPWind
Processed in 0.060194 second(s),query:16 Gzip disabled
本站由 瀛睿律师事务所 担任常年法律顾问 | 免责声明 | 本网站已依台湾网站内容分级规定处理 | 连络我们 | 访客留言