廣告廣告
  加入我的最愛 設為首頁 風格修改
首頁 首尾
 手機版   訂閱   地圖  簡體 
您是第 2782 個閱讀者
 
發表文章 發表投票 回覆文章
  可列印版   加為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.059953 second(s),query:16 Gzip disabled
本站由 瀛睿律師事務所 擔任常年法律顧問 | 免責聲明 | 本網站已依台灣網站內容分級規定處理 | 連絡我們 | 訪客留言