`
toyota2006
  • 浏览: 550837 次
  • 性别: Icon_minigender_1
  • 来自: 石家庄
社区版块
存档分类
最新评论

VB操作读取ini文件代码详解

VB 
阅读更多
Option Explicit

    '定义API函数
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 Function WritePrivateProfileString Lib "kernel32" Alias "WritePrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpString As Any, ByVal lpFileName As String) As Long


    '函数说明
'-------------------------------------------------------------------------
' ReadKeyVal FileName, Section, Key
' ~~~~~~~~读取FileName文件中的段Section下的关键字Key的值KeyValue
' WriteKeyVal FileName, Section, Key, KeyValue
' ~~~~~~~~写入值KeyValue到FileName文件中的段Section下的关键字Key
'-------------------------------------------------------------------------
' DeleteSection FileName, Section
' ~~~~~~~~删除FileName文件中的段Section
' DeleteKey FileName, Section, Key
' ~~~~~~~~删除FileName文件中的段Section下的关键字Key
' DeleteKeyValue FileName, Section, Key
' ~~~~~~~~删除FileName文件中的段Section下的关键字Key的KeyValue
'-------------------------------------------------------------------------
' TotalSections FileName
' ~~~~~~~~统计FileName文件中的段Section的总数
' TotalKeys FileName
' ~~~~~~~~统计FileName文件中的关键字Key的总数
' NumKeys FileName, Section
' ~~~~~~~~统计FileName文件中的段Section下的关键字Key的总数
'-------------------------------------------------------------------------
' RenameSection FileName, Section, NewSectionName
' ~~~~~~~~使用值NewSectionName替换FileName文件中的段Section
' RenameKey FileName, Section, KeyName, NewKeyName
' ~~~~~~~~使用值NewKeyName替换FileName文件中的段Section下的关键字Key
'-------------------------------------------------------------------------
' GetKey FileName, Section, KeyIndexNum,
' ~~~~~~~~获得FileName文件中的段Section下的Key索引为KeyIndexNum的Key
' GetKey2 FileName, SectionIndexNum,KeyIndexNum
' ~~~~~~~~获得FileName文件中的段索引为Section下的Key索引为KeyIndexNum的Key
' GetSection FileName, SectionIndexNum
' ~~~~~~~~获得FileName文件中的段索引为Section下的Section
'-------------------------------------------------------------------------
' GetSectionIndex FileName, Section
' ~~~~~~~~获得FileName文件中的段Section的索引
' GetKeyIndex FileName, Section, Key
' ~~~~~~~~获得FileName文件中的段Section下的关键字Key的索引
' GetKeyIndex2 FileName, SectionIndexNum,Key
' ~~~~~~~~获得FileName文件中的段索引为Section下的关键字Key的索引
'-------------------------------------------------------------------------
' KeyExist FileName, Section, Key
' ~~~~~~~~检测是FileName文件中的段Section下的Key是否存在
' KeyExist2 FileName, SectionIndexNum,Key
' ~~~~~~~~检测是FileName文件中的段索引为Section下的Key是否存在
' SectionExist FileName, Section
' ~~~~~~~~检测是FileName文件中的段Section是否存在
'-------------------------------------------------------------------------
' IsKey TextLine
' ~~~~~~~~检测是TextLine是否是Key行
' IsSection TextLine
' ~~~~~~~~检测是TextLine是否是Section行
'-------------------------------------------------------------------------


    'ini文件示例
'-------------------------------------------------------------------------
'[Section 1]
'Key 1=Key1Value
'[Section 2]
'Key 1=Key1Value
'Key 2=Key2Value
'Key 3=Key3Value
'Key 4=Key4Value
'Key 5=Key5Value
'[Section 3]
'Key 1=Key1Value
'Key 2=Key2Value
'Key 3=Key3Value

'-------------------------------------------------------------------------

    '正文
Private Function ReadKeyVal(ByVal FileName As String, ByVal Section As String, ByVal Key As String) As String
  Dim RetVal As String, Worked As Integer
  ReadKeyVal = ""
  If Dir(FileName) = "" Then MsgBox FileName & " not found.", vbCritical, "File Not Found": Exit Function
  RetVal = String$(255, Chr(0))
  Worked = GetPrivateProfileString(Section, Key, "", RetVal, Len(RetVal), FileName)
  ReadKeyVal = IIf(Worked = 0, "", Left(RetVal, InStr(RetVal, Chr(0)) - 1))
End Function

'---------------------------
Private Function WriteKeyVal(ByVal FileName As String, ByVal Section As String, ByVal Key As String, ByVal KeyValue As String) As Long
  WriteKeyVal = 0
  If Dir(FileName) = "" Then MsgBox FileName & " not found.", vbCritical, "File Not Found": Exit Function
  WriteKeyVal = WritePrivateProfileString(Section, Key, KeyValue, FileName)
End Function

'---------------------------
Private Function DeleteSection(ByVal FileName As String, ByVal Section As String) As Long
  DeleteSection = 0
  If Dir(FileName) = "" Then MsgBox FileName & " not found.", vbCritical, "File Not Found": Exit Function
  If Not SectionExists(FileName, Section) Then MsgBox "Section, " & Section & ", Not Found. ~(DeleteSection)" & vbCrLf & "Verify spelling and capitilization is correct. Case-sensative.", vbInformation, "Section Not Found.": Exit Function
  DeleteSection = WritePrivateProfileString(Section, vbNullString, vbNullString, FileName)
End Function

'---------------------------
Private Function DeleteKey(ByVal FileName As String, ByVal Section As String, ByVal Key As String) As Long
  DeleteKey = 0
  If Dir(FileName) = "" Then MsgBox FileName & " not found.", vbCritical, "File Not Found": Exit Function
  If Not SectionExists(FileName, Section) Then MsgBox "Section, " & Section & ", Not Found. ~(DeleteKey)" & vbCrLf & "Verify spelling and capitilization is correct. Case-sensative.", vbInformation, "Section Not Found.": Exit Function
  If Not KeyExists(FileName, Section, Key) Then MsgBox "Key, " & Key & ", Not Found. ~(DeleteKey)" & vbCrLf & "Verify spelling and capitilization is correct. Case-sensative.", vbInformation, "Key Not Found.": Exit Function
  DeleteKey = WritePrivateProfileString(Section, Key, vbNullString, FileName)
End Function

'---------------------------
Private Function DeleteKeyValue(ByVal FileName As String, ByVal Section As String, ByVal Key As String) As Integer
  DeleteKeyValue = 0
  If Dir(FileName) = "" Then MsgBox FileName & " not found.", vbCritical, "File Not Found": Exit Function
  If Not SectionExists(FileName, Section) Then MsgBox "Section, " & Section & ", Not Found. ~(DeleteKeyValue)" & vbCrLf & "Verify spelling and capitilization is correct. Case-sensative.", vbInformation, "Section Not Found.": Exit Function
  If Not KeyExists(FileName, Section, Key) Then MsgBox "Key, " & Key & ", Not Found. ~(DeleteKeyValue)" & vbCrLf & "Verify spelling and capitilization is correct. Case-sensative.", vbInformation, "Key Not Found.": Exit Function
  DeleteKeyValue = WritePrivateProfileString(Section, Key, "", FileName)
End Function 

来源:PC诊所
地址:http://www.pczs120.com/article/art349.htm
分享到:
评论

相关推荐

    vb读写ini文件 说明文档

    读取INI文件的代码如下: ```vb Private Declare Function GetPrivateProfileString Lib "kernel32" Alias "GetPrivateProfileStringA" _ (ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal ...

    ini文件操作

    ### INI 文件操作详解 在计算机编程领域,配置文件用于存储程序运行时的设置和参数,其中 `.ini`(初始化)文件是一种常见的格式。本文将深入解析如何在 VB.NET 中进行 INI 文件的读写操作。 #### 1. INI 文件简介...

    精彩编程与编程技巧-在VB应用程序中使用INI文件的一点体会...

    ### 使用VB进行INI文件操作详解 #### 一、概述 在软件开发中,尤其是在使用Visual Basic(简称VB)进行程序设计时,对于配置文件的管理是必不可少的一部分。配置文件可以帮助程序存储并读取用户设置或其他非数据库...

    basic编写的INI文件编辑器

    1. **文件读取**:编辑器首先需要读取INI文件的内容,这可能涉及到使用Basic的文件I/O函数,如`Open`、`Input#`、`Line Input#`等,来逐行读取文件并存储到内存中的数据结构。 2. **解析内容**:读取的数据需要被...

    收藏多年的vb技巧

    通过上述的介绍和示例代码,我们可以看到使用VB来操作INI文件不仅简单高效,而且能够大大提升Windows应用程序的灵活性和可维护性。掌握这些技巧,无疑能够帮助开发者更好地管理和配置程序的各种设置信息,从而提高...

    vb+sql配置文件 很好的有截图

    ### vb+sql配置文件知识点详解 #### 一、VB与SQL简介 在开始详细介绍如何创建和使用vb+sql配置文件之前,我们先简要介绍一下VB(Visual Basic)和SQL的基本概念。 - **Visual Basic (VB)**:Visual Basic是一种...

    INI文件编辑器源码VB版

    **VB版INI文件编辑器源码详解** INI文件是一种简单的文本配置文件格式,常用于存储应用程序的设置和配置信息。VB(Visual Basic)是微软开发的一种面向对象的编程语言,适合快速开发桌面应用。本篇将详细介绍使用VB...

    vb 编写的定时关机软件

    《VB编程实现定时关机软件详解》 VB(Visual Basic)是微软公司开发的一种面向对象的编程语言,因其简单易学、功能强大的特点,在初学者和专业开发者中广受欢迎。本篇文章将深入探讨如何利用VB编写一个定时关机软件...

    用vb编一个抽奖软件的源代码.docx

    VB提供了`GetPrivateProfileString`等函数来读取和写入INI文件。在这个案例中,虽然没有具体实现,但是可以设想应用可能通过INI文件保存抽奖规则、参与者名单等信息。 8. **事件驱动编程** VB采用事件驱动编程模型...

    精彩编程与编程技巧-访问INI...

    #### 二、使用 VB 进行 INI 文件操作 - **VB 简介**:Visual Basic 是一种广泛使用的编程语言,特别是对于 Windows 平台的应用开发非常友好。 - **访问 INI 文件**:本案例通过调用 Windows API 函数 `...

    cIniFile.zip_CIniFile_ini

    在Visual Basic 6.0(VB6)中,读取和写入INI文件是一个常见的任务,这些文件通常用于存储应用程序的配置信息。`cIniFile.zip`中的`cIniFile.cls`文件提供了一个自定义的类模块,允许开发者更方便地操作INI文件,而...

    VB特殊功能函数

    在VB中通过ADO(ActiveX Data Objects)连接并读取Excel文件是一种常见的需求,下面的代码演示了如何实现: ```vb ' 使用ADO连接Excel Dim Cn As New ADODB.Connection Dim Rs As New ADODB.Recordset Private Sub...

    VB SQL存储过程实例

    `ini()`函数用于从外部文件或配置读取必要的连接字符串信息,确保了代码的安全性和灵活性。 ##### 2. 调用存储过程 `sqlhc`函数展示了如何调用名为`PostbackInvoiceApplyMaster`的存储过程。首先,将`...

    壁纸切换源码(VB.NET)

    - 可以使用XML或ini文件存储用户设置,如壁纸目录和更换频率。VB.NET的`System.IO`命名空间提供了读写这些配置文件的便利方法。 9. **资源管理**: - 图像资源的管理很重要,尤其是当壁纸数量较大时。可以将壁纸...

    学生管理系统,用vb和acess编写的

    8. **文件操作**:可能涉及到保存和加载配置文件,如XML或ini文件,以存储用户设置和系统信息。 9. **程序调试与测试**:掌握调试技巧,如使用VB的Debug窗口、断点和步进执行,确保代码的正确性和效率。 通过学习...

    vb api函数手册

    `GetProfileString**:这些函数用于获取文件属性、版本信息、路径、驱动器列表等信息,以及读取INI文件配置。 此外,还有一些特定于低级文件操作的API,如 `lread`、`lwrite`、`lclose`、`lcreat`、`llseek`、`Lock...

    大强学易之INI与组合框.rar

    INI文件详解: INI文件是一种文本文件,主要用于存储应用程序的设置和配置信息。它的结构简单,由键(Key)和值(Value)组成,每一行代表一个键值对,键名和键值之间用等号(=)分隔。这种文件格式易于读写,便于...

    基于VB的班级管理系统源码.zip

    1. **源代码文件**:通常以.vbp(项目文件)、.frm(窗体文件)、.bas(标准模块文件)和.cls(类模块文件)为扩展名,这些是VB项目的主要构成部分。 2. **数据库文件**:可能使用Access或其他类型的数据库,如.mdb...

Global site tag (gtag.js) - Google Analytics