登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

miaozk2006

点滴积累与收藏:关于技术,关于生活

 
 
 

日志

 
 

在VB中INI文件的读写、删除(对中文支持很好)  

2012-01-04 13:29:43|  分类: 编程-VB |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
很多时候我们编一个程序不一定要用到注册表来保存设置(如果说一个程序没有设置就不算好程序了)。INI是一个很好的选择。有人说,Savesetting是一个不错的选择,但是我了解到,不能永久的保存(起码在系统重装的时候会丢失)。于是Ini作为一个Windows配置文件,可以放在本地路径,优势就呈现出来。下面讨论一下这个问题。


在网上看过例子,但是对中文支持不好。。。。(这个是自己写的,实现了对中文的支持)

以下两种方法,喜欢用哪个就用哪个
以下放在模块中
程序代码:  
'***********************************************************
'**模 块 名         ModIniFile
'**作    用         INI文件操作(包括,读、写、删除),很方便,对中文支持很好。
'**作    者         石陆
'**制作日期         2007年12月8日9:57:31
'**修    改
'**修改日期
'**石陆软件屋       http://baidu.bzzo.net
'***********************************************************

'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'完成 d:\123.ini 内容如下-------写INI
'
'[main]
'Caption = 石陆软件屋
'例句  SaveINI "main", "Caption", "石陆软件屋", "D:\123.ini"
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'd:\123.ini 内容如下-------读取INI
'
'[main]
'Caption = 石陆软件屋
'例句  GetINI("main", "Caption", "'http://baidu.bzzo.net", "D:\123.ini")
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Option Explicit

Private Declare Function GetPrivateProfileString Lib "kernel32" Alias "GetPrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As String, ByVal lpDefault As String, ByVal lpReturnedString As String, ByVal nSize As Long, ByVal lpFileName As String) As Long
Private Declare Function WritePrivateProfileString Lib "kernel32" Alias "WritePrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As String, ByVal lpString As Any, ByVal lpFileName As String) As Long

'Const pa As String = "C:\Users\BAIDU-ZCY\Desktop\ccc.ini"
Public Function WriteINI(ByVal Genus As String, ByVal Item As String, ByVal Value As String, ByVal InIname As String) As Long
    WriteINI = WritePrivateProfileString(Genus, Item, Value, InIname)
End Function

Public Function ReadINI(ByVal Genus As String, ByVal Item As String, ByVal Default As String, ByVal InIname As String) As String
    ReadINI = String$(255, 0)
    GetPrivateProfileString Genus, Item, Default, ReadINI, 256, InIname
    ReadINI = Replace(ReadINI, Chr(0), "")
End Function

Sub DelItem(ByVal Genus As String, ByVal Item As String, ByVal InIname As String)
    WritePrivateProfileString Genus, Item, 0&, InIname
End Sub

Sub DelItemAll(ByVal Genus As String, ByVal InIname As String)
    WritePrivateProfileSection Genus, "", InIname
End Sub

Sub DelSec(ByVal Genus As String, ByVal InIname As String)
    WritePrivateProfileSection Genus, 0&, InIname
End Sub


以上是模块的写法,可以 写、读、删

下面是类模块 名字为 classIniFile.cls
程序代码:  
'***********************************************************
'**类模块名         classIniFile
'**作    用         INI文件操作(包括,读、写、删除),很方便,对中文支持很好。
'**作    者         石陆
'**制作日期         2007年12月8日9:47:44
'**修    改
'**修改日期
'**石陆软件屋       http://baidu.bzzo.net
'***********************************************************
Option Explicit

Private strINI As String

Private 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 Long
Private 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


Public Sub WriteIniKey(strSection As String, strKey As String, strValue As String)
    WritePrivateProfileString strSection, strKey, strValue, strINI
End Sub

Public Function GetIniKey(strSection As String, strKey As String, ByVal Default As String) As String
    GetIniKey = String$(255, 0)
    GetPrivateProfileString strSection, strKey, Default, GetIniKey, 256, strINI
    GetIniKey = Replace(GetIniKey, Chr(0), "")
End Function

'***********************************************************
'**属性过程         INIFileName
'**作    用         设置INI文件名字
'**作    者         石陆
'**制作日期         2007年12月8日9:51:59
'**修    改
'**修改日期
'**石陆软件屋       http://baidu.bzzo.net
'***********************************************************
Public Property Let INIFileName(ByVal New_IniPath As String)
    strINI = New_IniPath
End Property

'***********************************************************
'**属性过程         INIFileName
'**作    用         返回INI文件名字
'**作    者         石陆
'**制作日期         2007年12月8日9:53:06
'**修    改
'**修改日期
'**石陆软件屋       http://baidu.bzzo.net
'***********************************************************
Public Property Get INIFileName() As String
    INIFileName = strINI
End Property


Public Function DelIniKey(ByVal SectionName As String, ByVal KeyWord As String)
     WritePrivateProfileString SectionName, KeyWord, 0&, strINI
End Function


Public Function DelIniSec(ByVal SectionName As String)      '清除section
    WritePrivateProfileString SectionName, 0&, "", strINI
End Function




VB部分相关推荐


VB快速读取 TextBox N 行的资料

VB禁止使用 Alt-Tab Ctrl-Alt-Del

生成迷宫的程序

另一方法转换大小写

VB控件注册 - 利用资源文件将dllocx打包进exe文件

VB利用资源文件进行工作

[]vb高效编程(优化)

VB阳历转阴历

VB代码取得硬盘的物理序列号

VB获得磁盘的文件系统

VB的,经常注册和反注册OCX控件和DLL

VB从程序中生成Exe文件

VB6监视/操作剪贴板示例(VB6.0代码)

VB6里自动提交/自动填表的一种相对通用的方案

VB移动没有标题的窗体

VB随机字母的函数

VB删除带子文件夹和文件的文件夹

VB怎样屏蔽 Alt+F4

VB 隐藏进程

vb屏蔽文本框点右键时的弹出菜单

VB手控Combobox的打开或收起

VBINI文件的读写、删除(对中文支持很好)

vb全局热键的写法(占很少的资源)

vb取消文本框的粘贴功能

VB常用文件操作类

VB获取特殊文件夹

VB获取windows各常用目录的函数(模块)

VB生成太极图

VB:常用内部函数大全,你会了几个呢?

vbSendMessage函数

精简VB程序的代码

VB:将数字转换为大写中文

VB:设定 MsgBox 在若干时间之后若无回应则自动关闭

VB:读取及设定NumLock/CapsLock/ScrollLock的值

VB:您知道 Mid$ 函量可以放在 '=' 的左方吗

VB后台获得按键,并执行自己的函数(非钩子及热键)

VB:将短文件名格式转成长文件名

vb中使用Iphlpapi.dll获取网络信息(上)

vb中使用Iphlpapi.dll获取网络信息(下)

更多精彩>>>

  评论这张
 
阅读(1683)| 评论(0)

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018