热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

对Ini文件进行操作的类

ModuleIniWorkModuleIniWorkFriendClassclsIniFileClassclsIniFile
Module IniWork Module IniWork

    
Friend Class clsIniFileClass clsIniFile
        
'模块名称 clsIniFile
        '功能描述 提供对Ini文件的一些操作
        '创建日期 20031026
        '开发机构 石家庄天海科技有限公司

        
'声明API函数
        Private Declare Function WritePrivateProfileSection()Function WritePrivateProfileSection Lib "kernel32" Alias "WritePrivateProfileSectionA" (ByVal lpAppName As StringByVal lpString As StringByVal lpFileName As StringAs Integer
        
Private Declare Function GetPrivateProfileString()Function GetPrivateProfileString Lib "kernel32" Alias "GetPrivateProfileStringA" (ByVal lpApplicationName As StringByVal lpKeyName As StringByVal lpDefault As StringByVal lpReturnedString As StringByVal nSize As IntegerByVal lpFileName As StringAs Integer
        
Private Declare Function WritePrivateProfileString()Function WritePrivateProfileString Lib "kernel32" Alias "WritePrivateProfileStringA" (ByVal lpApplicationName As StringByVal lpKeyName As StringByVal lpString As StringByVal lpFileName As StringAs Integer
        
Private objFilesys As Scripting.FileSystemObject  '文件系统对象
        Private fFileName As String '保存Ini文件名


        
'过程名称:fGetIniString
        '功能描述:从ini文件中得到指定Section中的指定Key的值
        '接收参数:SectionName指定Section的名字,指定Key的名字
        '返回参数:返回读出的值
        '创建人员及日期:zzz@20031104
        Public Function fGetIniString()Function fGetIniString(ByVal sSectionName As String, _
                                      
ByVal sKeyName As String, _
                                      
ByVal IniFilePathName As String, _
                                      
Optional ByVal sDefaultValue As String = ""As String

            
Try
                
If Not objFilesys.FileExists(IniFilePathName) Then '如果文件不存在则退出
                    fGetIniString = sDefaultValue
                    
Exit Function
                
End If

                
Dim sValue As String
                sValue 
= Space(255)
                
Dim i, iResult, iPos As Short

                iResult 
= GetPrivateProfileString(sSectionName, sKeyName, sDefaultValue, sValue, Len(sValue), IniFilePathName)
                iPos 
= InStr(1, sValue, Chr(0))
                
If iPos > 0 Then '去掉未尾的chr(0)字符
                    fGetIniString = Mid(sValue, 1, iPos - 1)
                
Else
                    fGetIniString 
= sValue
                
End If
            
Catch ex As Exception
                
Throw New Exception("Error In fGetIniString!!!" & vbCrLf & _
                                    
"Source:" & ex.Source.ToString() & "Message:" & ex.Message)
            
End Try
        
End Function



        
'过程名称:sInitializeIniFile
        '功能描述:初始化ini文件对象,保存文件名字
        '接收参数:FullIniName要处理的ini文件名字(全路途文件名),bNoExistCreate如果文件不存是否创建
        '返回参数:
        '创建人员及日期:zzz@20031104
        Public Sub sInitializeIniFile()Sub sInitializeIniFile(ByVal FullIniName As StringOptional ByVal bNoExistCreate As Boolean = True)
            
Try
                
If Not objFilesys.FileExists(FullIniName) And bNoExistCreate Then '如果文件不存在并且需要创建则创建
                    WritePrivateProfileSection("Created Date""Created=" & Today & " " & TimeOfDay & Chr(0& Chr(0), FullIniName)
                
End If
                fFileName 
= FullIniName
            
Catch ex As Exception
                
Throw New Exception("Error In sInitializeIniFile!!!" & vbCrLf & _
                                        
"Source:" & ex.Source.ToString() & "Message:" & ex.Message)
            
End Try
        
End Sub



        
'过程名称:fWriteIniSection
        '功能描述:将包含多个key及key值的数组写入ini文件中的指定Section
        '接收参数:SectionName指定要写入的Section,FieldArr表示key及key值的字符串如
        '          FieldArr(0) = "a=0"    FieldArr(0) = "b=1",如果Section不存在则创建
        '返回参数:成功返回True,否则返回False
        '创建人员及日期:zzz@20031104
        Public Function fWriteIniSection()Function fWriteIniSection(ByVal SectionName As StringOptional ByRef FieldArr As Object = NothingAs Boolean
            
Try
                
Dim iResult As Short
                
If Not objFilesys.FileExists(fFileName) Then
                    fWriteIniSection 
= False
                    
Exit Function
                
End If
                
'
                Dim sTemp As String
                sTemp 
= ""

                
Dim i As Short
                
If Not IsNothing(FieldArr) Then
                    
For i = LBound(FieldArr) To UBound(FieldArr)
                        sTemp 
= sTemp + FieldArr(i) & Chr(0)
                    
Next
                
End If

                sTemp 
= sTemp & Chr(0)
                iResult 
= WritePrivateProfileSection(SectionName, sTemp, fFileName)
                fWriteIniSection 
= iResult <> 0
            
Catch ex As Exception
                
Throw New Exception("Error In fWriteIniSection!!!" & vbCrLf & _
                                        
"Source:" & ex.Source.ToString() & "Message:" & ex.Message)
            
End Try
        
End Function



        
'过程名称:fWriteIniString
        '功能描述:将单个key及key值写入ini文件中的指定Section
        '接收参数:SectionName指定要写入的Section,KeyName表示key的名字,KeyValue表示key的值
        '返回参数:成功返回True,否则返回False
        '创建人员及日期:zzz@20031104
        Public Function fWriteIniString()Function fWriteIniString(ByVal SectionName As String, _
                                        
ByVal KeyName As String, _
                                        
ByVal KeyValue As String, _
                                        
ByVal IniFilePathName As StringAs Boolean
            
Try
                
Dim iResult As Short
                
If Not objFilesys.FileExists(IniFilePathName) Then '文件不存在则退出
                    fWriteIniString = False
                    
Exit Function
                
End If

                iResult 
= WritePrivateProfileString(SectionName, KeyName, KeyValue, IniFilePathName)
                fWriteIniString 
= iResult <> 0
            
Catch ex As Exception
                
Throw New Exception("Error In fWriteIniString!!!" & vbCrLf & _
                                        
"Source:" & ex.Source.ToString() & "Message:" & ex.Message)
            
End Try
        
End Function


        
Private Sub Class_Initialize_Renamed()Sub Class_Initialize_Renamed()
            
Try
                objFilesys 
= New Scripting.FileSystemObject
            
Catch ex As Exception
                
Throw New Exception("Error In Class_Initialize_Renamed!!!" & vbCrLf & _
                                        
"Source:" & ex.Source.ToString() & "Message:" & ex.Message)
            
End Try
        
End Sub

        
Public Sub New()Sub New()
            
MyBase.New()
            Class_Initialize_Renamed()
        
End Sub


        
Private Sub Class_Terminate_Renamed()Sub Class_Terminate_Renamed()
            
Try
                objFilesys 
= Nothing
            
Catch ex As Exception
                
Throw New Exception("Error In Class_Terminate_Renamed!!!" & vbCrLf & _
                                           
"Source:" & ex.Source.ToString() & "Message:" & ex.Message)
            
End Try
        
End Sub

        
Protected Overrides Sub Finalize()Sub Finalize()
            Class_Terminate_Renamed()
            
MyBase.Finalize()
        
End Sub

    
End Class

End Module

 

推荐阅读
  • 本文介绍了Redis的基础数据结构string的应用场景,并以面试的形式进行问答讲解,帮助读者更好地理解和应用Redis。同时,描述了一位面试者的心理状态和面试官的行为。 ... [详细]
  • Iamtryingtomakeaclassthatwillreadatextfileofnamesintoanarray,thenreturnthatarra ... [详细]
  • XML介绍与使用的概述及标签规则
    本文介绍了XML的基本概念和用途,包括XML的可扩展性和标签的自定义特性。同时还详细解释了XML标签的规则,包括标签的尖括号和合法标识符的组成,标签必须成对出现的原则以及特殊标签的使用方法。通过本文的阅读,读者可以对XML的基本知识有一个全面的了解。 ... [详细]
  • Linux服务器密码过期策略、登录次数限制、私钥登录等配置方法
    本文介绍了在Linux服务器上进行密码过期策略、登录次数限制、私钥登录等配置的方法。通过修改配置文件中的参数,可以设置密码的有效期、最小间隔时间、最小长度,并在密码过期前进行提示。同时还介绍了如何进行公钥登录和修改默认账户用户名的操作。详细步骤和注意事项可参考本文内容。 ... [详细]
  • 在Android开发中,使用Picasso库可以实现对网络图片的等比例缩放。本文介绍了使用Picasso库进行图片缩放的方法,并提供了具体的代码实现。通过获取图片的宽高,计算目标宽度和高度,并创建新图实现等比例缩放。 ... [详细]
  • 向QTextEdit拖放文件的方法及实现步骤
    本文介绍了在使用QTextEdit时如何实现拖放文件的功能,包括相关的方法和实现步骤。通过重写dragEnterEvent和dropEvent函数,并结合QMimeData和QUrl等类,可以轻松实现向QTextEdit拖放文件的功能。详细的代码实现和说明可以参考本文提供的示例代码。 ... [详细]
  • Linux重启网络命令实例及关机和重启示例教程
    本文介绍了Linux系统中重启网络命令的实例,以及使用不同方式关机和重启系统的示例教程。包括使用图形界面和控制台访问系统的方法,以及使用shutdown命令进行系统关机和重启的句法和用法。 ... [详细]
  • android listview OnItemClickListener失效原因
    最近在做listview时发现OnItemClickListener失效的问题,经过查找发现是因为button的原因。不仅listitem中存在button会影响OnItemClickListener事件的失效,还会导致单击后listview每个item的背景改变,使得item中的所有有关焦点的事件都失效。本文给出了一个范例来说明这种情况,并提供了解决方法。 ... [详细]
  • Java容器中的compareto方法排序原理解析
    本文从源码解析Java容器中的compareto方法的排序原理,讲解了在使用数组存储数据时的限制以及存储效率的问题。同时提到了Redis的五大数据结构和list、set等知识点,回忆了作者大学时代的Java学习经历。文章以作者做的思维导图作为目录,展示了整个讲解过程。 ... [详细]
  • 如何用UE4制作2D游戏文档——计算篇
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了如何用UE4制作2D游戏文档——计算篇相关的知识,希望对你有一定的参考价值。 ... [详细]
  • 本文讨论了一个关于cuowu类的问题,作者在使用cuowu类时遇到了错误提示和使用AdjustmentListener的问题。文章提供了16个解决方案,并给出了两个可能导致错误的原因。 ... [详细]
  • 1,关于死锁的理解死锁,我们可以简单的理解为是两个线程同时使用同一资源,两个线程又得不到相应的资源而造成永无相互等待的情况。 2,模拟死锁背景介绍:我们创建一个朋友 ... [详细]
  • 不同优化算法的比较分析及实验验证
    本文介绍了神经网络优化中常用的优化方法,包括学习率调整和梯度估计修正,并通过实验验证了不同优化算法的效果。实验结果表明,Adam算法在综合考虑学习率调整和梯度估计修正方面表现较好。该研究对于优化神经网络的训练过程具有指导意义。 ... [详细]
  • 本文详细介绍了Spring的JdbcTemplate的使用方法,包括执行存储过程、存储函数的call()方法,执行任何SQL语句的execute()方法,单个更新和批量更新的update()和batchUpdate()方法,以及单查和列表查询的query()和queryForXXX()方法。提供了经过测试的API供使用。 ... [详细]
  • CF:3D City Model(小思维)问题解析和代码实现
    本文通过解析CF:3D City Model问题,介绍了问题的背景和要求,并给出了相应的代码实现。该问题涉及到在一个矩形的网格上建造城市的情景,每个网格单元可以作为建筑的基础,建筑由多个立方体叠加而成。文章详细讲解了问题的解决思路,并给出了相应的代码实现供读者参考。 ... [详细]
author-avatar
劳资就是若听_979
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有