全國服務熱線:0597-2297794 24小時咨詢:15080281944 15080287989
設為首頁加入收藏聯系我們

VB6中一個非常好用的讀寫INI文件的模塊

來源:互聯網   發布時間:2013/12/27 21:55:42     閱讀數:1276

  網上讀寫Ini文件的例子只有幾篇相同的文章,而并不好用,奇怪的是各網站都是同樣的例程,高手也就罷了,三下五除二就搞定,初學者會被搞得一頭霧水,看著一個好好的模塊就是不能用! ∷晕艺砹艘幌拢ㄗ钤缡窃隍v訊答一個貼子時寫的),這個也就是修改了一下,不是我自已的發明(至于這個代碼起先不知是誰寫的),不過非常的好用  新建模塊(建議不使用注冊表) 命名為rwini  'ini文件在有回車換行符會出錯,經過測試,漢字要小于86字節,英言文要小于143字節才能返回列表框。(這是我以前的code,是記錄列表框內容的)Option ExplicitPublic iniFileName As StringPublic Declare Function GetPrivateProfileInt Lib "kernel32" Alias "GetPrivateProfileIntA" (ByVal lpApplicationName As String, ByVal lpKeyName As String, ByVal nDefault As Long, ByVal lpFileName As String) As LongPublic Declare Function GetPrivateProfileString Lib "kernel32" Alias "GetPrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpDefault As String, ByVal lpReturnedString As String, ByVal nSize As Long, ByVal lpFileName As String) As LongPublic Declare Function WritePrivateProfileString Lib "kernel32" Alias "WritePrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpString As Any, ByVal lpFileName As String) As Long  '****************************************獲取Ini字符串值(Function)******************************************Function GetIniS(ByVal SectionName As String, ByVal KeyWord As String, ByVal DefString As String) As StringDim ResultString As String * 144, Temp As IntegerDim s As String, i As IntegerTemp% = GetPrivateProfileString(SectionName, KeyWord, "", ResultString, 144, AppProFileName(iniFileName))'檢索關鍵詞的值If Temp% > 0 Then '關鍵詞的值不為空s = ""For i = 1 To 144If Asc(Mid$(ResultString, i, 1)) = 0 ThenExit ForElses = s & Mid$(ResultString, i, 1)End IfNextElseTemp% = WritePrivateProfileString(SectionName, KeyWord, DefString, AppProFileName(iniFileName))'將缺省值寫入INI文件s = DefStringEnd IfGetIniS = sEnd Function  '**************************************獲取Ini數值(Function)***************************************************Function GetIniN(ByVal SectionName As String, ByVal KeyWord As String, ByVal DefValue As Long) As IntegerDim d As Long, s As Stringd = DefValueGetIniN = GetPrivateProfileInt(SectionName, KeyWord, DefValue, AppProFileName(iniFileName))If d <> DefValue Thens = "" & dd = WritePrivateProfileString(SectionName, KeyWord, s, AppProFileName(iniFileName))End IfEnd Function  '***************************************寫入字符串值(Sub)**************************************************Sub SetIniS(ByVal SectionName As String, ByVal KeyWord As String, ByVal ValStr As String)Dim res%res% = WritePrivateProfileString(SectionName, KeyWord, ValStr, AppProFileName(iniFileName))End Sub'****************************************寫入數值(Sub)******************************************************Sub SetIniN(ByVal SectionName As String, ByVal KeyWord As String, ByVal ValInt As Long)Dim res%, s$s$ = Str$(ValInt)res% = WritePrivateProfileString(SectionName, KeyWord, s$, AppProFileName(iniFileName))End Sub''這是我自已不知道怎樣清除一個鍵(keyword) 時寫的一個清除字符串值的過程,是有write函數寫入一個空的值實現的,'Sub DelIniS(ByVal SectionName As String, ByVal KeyWord As String)'Dim retval As Integer'retval = WritePrivateProfileString(SectionName, KeyWord, "", AppProFileName(iniFileName))'End Sub'其實0&表示前面的一個被清除,我多寫了一個“”,如果是清除section就少寫一個Key多一個“”! '***************************************清除KeyWord"鍵"(Sub)*************************************************Sub DelIniKey(ByVal SectionName As String, ByVal KeyWord As String)Dim RetVal As IntegerRetVal = WritePrivateProfileString(SectionName, KeyWord, 0&, AppProFileName(iniFileName))End Sub  '如果是清除section就少寫一個Key多一個“”。'**************************************清除 Section"段"(Sub)***********************************************Sub DelIniSec(ByVal SectionName As String) '清除sectionDim RetVal As IntegerRetVal = WritePrivateProfileString(SectionName, 0&, "", AppProFileName(iniFileName))End Sub  '*************************************定義Ini文件名(Function)***************************************************'定義ini文件名Function AppProFileName(iniFileName)AppProFileName = App.Path & "\" & iniFileName & ".ini"End Function  #######################################################################  '用法: 首先 定義iniFileName="文件名" 不需要 加ini后綴'這就是說,你可以賦值給iniFileName就可以寫入記錄,而且你可以隨時寫入不同的ini文件(不管這個文件是否已存在),通過修改這個公用變量! '然后  DelInikey(ByVal SectionName As String, ByVal KeyWord As String) 清除鍵'DelIniSec(ByVal SectionName As String)) 清除部'SetIniN(ByVal SectionName As String, ByVal KeyWord As String, ByVal ValInt As Long) 寫入數'GetIniN(ByVal SectionName As String, ByVal KeyWord As String, ByVal DefValue As Long)讀取數'SetIniS (ByVal SectionName As String, ByVal KeyWord As String, ByVal ValStr As String) 寫入字符'GetIniS(ByVal SectionName As String, ByVal KeyWord As String, ByVal ValStr As String) 讀取字符  調用例子如下:  Sub RiniN()Dim Initemp As StringInitemp = iniFileName '暫存原來的Ini文件名iniFileName = App.EXEName '寫入到另外一個Ini文件,App.EXEName是你的程序的名程If GetIniN("lstBackup", "backupnumber", 0) < lstBackUp.ListCount Then'這里的第三個參數“0”表示在沒有找到指定的鍵值時返回的缺省值為“0”SetIniN "lstBackup", "backupnumber", lstBackUp.ListCount'......End IfiniFileName = Initemp '繼續使用原來的Ini文件End Sub  '你在你的電腦子上搜索*.ini就看一下,最上面是部,每一個key后面是一個對應的值  再次重申,這個Ini讀寫的例子是網上找來改寫的,我只是為方便大家使用。算不得我的發明。(我本來不想寫VB6的東西---我本來就不曾認真學過VB6的了,實在不明白為什么要傳播一個不完整的例程這么久),如果有任何不當的地方,就“權且”吧。

 如果您覺得此文對您有啟發或者幫助,可以花3秒鐘收藏到QQ空間。平時注意多收集,用時不會干著急!

[您可能感興趣的文章]
最新案例
網站建設資訊
  1. [資訊]Google Adsense ?
  2. [資訊]如何防止google adse?
  3. [資訊]使你的網站更專業--談網站優化?
  4. [資訊]優化你的站點,讓它加載的再快一?
  5. [資訊]網站建設:提高網站訪問量的策略?
  6. [資訊]揭開虛擬主機供應商的面紗?
SEO常見問題解答
  1. [SEO]什么是ALT屬性?
  2. [SEO]什么是鏈接錨文本?
  3. [SEO]什么是動態頁面?
  4. [SEO]HTTP狀態碼是什么意思??
  5. [SEO]鏈接養殖場?
  6. [SEO]首選域?
點擊立刻咨詢
福建快三走势图彩经网 江苏七位数规则 湖北体彩11选5玩法 脉动棋牌网站 捕鱼游戏快速涨分小技巧 双色球黄金对应码 大四喜在国标麻将中的番数 qq空间捕鱼大亨辅助 广东26选5基本走势图 金沙棋牌游戏中心 二人麻将游戏规则 娱乐之城 yy陕西麻将苹果版下载 买马的网站是多少 下载四川成都麻将 龙王捕鱼龙王炮怎么打 精选24码期期准87654