精华内容
下载资源
问答
  • GetPrivateProfileString "Setting", In_Key, "", GetStr, 256, App.Path & "\SourceDB.ini" GetStr = VBA.Replace(GetStr, VBA.Chr(0), "") If GetStr = "1" Then GetIniTF = True GetStr = "" Else GoTo ...
  • VB读取和修改保存ini的模块,内部引用了系统的API函数 可以直接修改,保存,读取ini文件
  • 在我们写的程序当中,总有一些配置信息需要保存下来,以便完成程序的功能,最简单的办法就是将这些信息写入INI文件,程序初始化时再读入。
  • VB6读取INI文件

    千次阅读 2017-12-06 10:03:15
    开发环境:VB6  程式版本更新, 读取INI文件做对比, 确认版本是否最新. 可用VB6的工具下的API检视员来自动生成API调用代码. INI文件内容: [Version] TEST=2017-11-20 00:00:00 调用API. Private Declare ...

    开发环境:VB6 

    程式版本更新, 读取INI文件做对比, 确认版本是否最新.

    可用VB6的工具下的API检视员来自动生成API调用代码.


    INI文件内容:

    [Version]

    TEST=2017-11-20 00:00:00

    调用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 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文件:

        Dim strOldVersion As String

        strOldVersion = String(20, 0)
        GetPrivateProfileString "Version", "TEST", "2017-07-01 00:00:00", strOldVersion, 20, ".\Version.ini"

    写INI文件:

        Dim newDate As String
        newDate = Format(AdoFile!filecreatedate, "yyyy-MM-dd hh:MM:ss")
        WritePrivateProfileString "Version", "TEST", newDate, App.Path & "\Version.ini"



    展开全文
  • vb.net vs2008读取INI文件示例,ini文件名为 Send.ini,代码包括了一个读ini API函数。  Ini文件说明:  [节名] []的节名对应此API的第一参数  Name=内容 Name对应此API的第二参数  API的第三参数是没有取到...
  • vb ini非系统读写函数

    2013-07-14 06:43:58
    这个是一个配置文件读写的两个函数,目标文件格式与ini相类似,支持注释(只要不含"=""[""]"三个敏感字符就行)。读取时文件将以匹配Section(第几个要取决于有重复Section时,那个Section第一个出现了目标Key)和...
  • VB读写配置文件(ini

    千次阅读 2019-07-31 14:45:03
    .ini 文件是Initialization File的缩写,即初始化文件,是windows的系统配置文件所采用的存储格式,统管windows的各项配置,一般用户就用windows提供的各项图形化管理界面就可实现相同的配置了。但在某些情况,还是...

    前言
    .ini 文件是Initialization File的缩写,即初始化文件,是windows的系统配置文件所采用的存储格式,统管windows的各项配置,一般用户就用windows提供的各项图形化管理界面就可实现相同的配置了。但在某些情况,还是要直接编辑ini才方便。

    一、调用系统库函数

    '读配置文件(调用系统库函数)
    Public Declare Function GetPrivateProfileString& Lib "kernel32" Alias "GetPrivateProfileStringA" ( _
     ByVal AppName As String, _
     ByVal KeyName As String, _
     ByVal lpDefault As String, _
     ByVal lpReturnString As String, _
     ByVal nSize As Long, _
     ByVal FileName As String) _
    '写配置文件(调用系统库函数)
    Public Declare Function WritePrivateProfileString& Lib "kernel32" Alias "WritePrivateProfileStringA" ( _
    ByVal AppName$, _
    ByVal KeyName$, _
    ByVal keyDefault$, _
    ByVal FileName$)
    

    二、封装函数

    
    '读配置文件(简化函数调用)
    Public Function ReadIni(ByVal AppName As String, ByVal KeyName As String, ByVal DefaultValue As String, Optional IniPath As String) As String
        Dim Buf As String
        Dim ret As Integer
        Dim tmp As String
        Buf = String(1024, 0) 'buf=10240
        If IniPath = "" Then
            ret = GetPrivateProfileString(AppName, KeyName, DefaultValue, Buf, 1024, App.Path + "\config.ini")
        Else
            ret = GetPrivateProfileString(AppName, KeyName, DefaultValue, Buf, 1024, IniPath)
        End If
        tmp = Mid(Buf, 1, ret)
        If InStr(1, tmp, Chr(0)) > 0 Then tmp = Left(tmp, InStr(1, tmp, Chr(0)) - 1)
        ReadIni = tmp
    End Function
    '写配置文件(简化函数调用)
    Public Function WriteIni(ByVal AppName As String, ByVal KeyName As String, ByVal KeyValue As String, Optional IniPath As String = "") As Boolean
        If IniPath = "" Then
            WritePrivateProfileString& AppName, KeyName, KeyValue, App.Path + "\config.ini"
        Else
            WritePrivateProfileString& AppName, KeyName, KeyValue, IniPath
        End If
    End Function
    
    

    三、使用函数

       WriteIni "pronum", "num", 123 '写入ini
       num = ReadIni("pronum", "num", "0")  '读出ini
    
    展开全文
  • INI是一个很好的选择。有人说,Savesetting是一个不错的选择,但是我了解到,不能永久的保存(起码在系统重装的时候会丢失)。于是Ini作为一个Windows配置文件,可以放在本地路径,优势就呈现出来。下面讨论一下这个...
    很多时候我们编一个程序不一定要用到注册表来保存设置(如果说一个程序没有设置就不算好程序了)。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获取网络信息(下)

    更多精彩>>>

    展开全文
  • VB中INI文件操作

    千次阅读 2008-10-15 12:37:00
    首先是一个介绍的文章:为了方便用户使用和使系统具有灵活性,大多数Win-dows应用程序将用户所做的选择以及各种变化的系统信息记录在初始化(INI)文件。因此,当系统的环境发生变化时,可以直接修改INI文件,而无需修改...
    首先是一个介绍的文章:
    

    为了方便用户使用和使系统具有灵活性,大多数Win-dows应用程序将用户所做的选择以及各种变化的系统信息记录在初始化(INI)文件中。因 此,当系统的环境发生变化时,可以直接修改INI文件,而无需修改程序。由此可见,INI文件对系统功能是至关重要的。本文将介绍采用 VisualBasicforWindows(下称VB)开发Windows应用程序时如何读写INI文件。

      INI文件是文本文件,由若干部分(section)组成,在每个带括号的标题下面,是若干个以单个单词开头的关键词(keyword)和一个等号,每个关键词会控制应用程序某个功能的工作方式,等号右边的值(value)指定关键词的操作方式。其一般形式如下:

      [Section1]
      KeyWord1=Valuel
      KeyWord2=Value2
       ……
      [Section2]
      KeyWord1=Value1
      KeyWord2=Value2
       ……

      其中,如果等号右边无任何内容(即Value为空),那就表示Windows应用程序已为该关键词指定了缺省值,如果在整个文件中找不到某个关 键词(或整个一部分),那同样表示为它们指定了缺省值。各个部分所出现的顺序是无关紧要的,在每一个部分里,各个关键词的顺序同样也无关紧要。

      读写INI文件通常有两种方式:一是在Windows中用“记事本”(Notepad)对其进行编辑,比较简单,无需赘述;二是由Windows应用程序读写INI文件,通常是应用程序运行时读取INI文件中的信息,退出应用程序时保存用户对运行环境的某些修改。

      关键词的值的类型多为字符串或整数型,应分两种情况读写。为了使程序具有可维护性和可移植性,最好把对INI文件的读写封装在一个模块 (RWINI.BAS)中,在RWI-NI.BAS中构造GetIniS和GetIniN函数以及SetIniS和Se-tIniN过程,在这些函数和过 程中需要使用WindowsAPI的“GetPrivateprofileString”、“GetPrivateProfileInt”和 “WritePrivateProfileString”函数。

      RWINI.BAS模块的程序代码如下:

      在General-Declearation部分中声明使用到的WindowsAPI函数:

    Public Declare Function GetprivateprofileString Lib“Kernel”(ByVal lpAppName As String,ByVal lpKeyName As _
      String,ByVal lpDefault As String,ByVal lpRetrm-String As String,ByVal cbReturnString As Integer, _
      ByVal Filename As String)As Integer
    Public Declare Function GetPrivatePfileInt Lib“Kernel”(ByVal lpAppName As String,ByVal lpKeyName As String, _
      ByVal lpDefault As Integer,ByVal Filename As String)As Integer
    Public Declare Funciton WritePrivateprofileString Lib“Kernel”(ByVal lpApplicationName As String, _
      ByVal lpKeyName As String,ByVal lpString As String,ByVal lplFileName As String)As Integer
    Public Function GetIniS(ByVal SectionName As String,ByValKeyWord As String,ByVal DefString As String)As String
      Dim ResultString As String*144,Temp As Integer
      Dim s As String,i As Integer
      Temp%=GetPrivateProfileString(SectionName,KeyWord,"",ResultString,144,AppProfileName())
      ’检索关键词的值
      If Temp%>0 Then ’关键词的值不为空
      s=""
      For i=1 To 144
       If Asc(Mid$(ResultString,I,1))=0 Then
        ExitFor
       Else
        s=s & Mid$(ResultString,I,1)
       End If
      Next
      Else
      Temp%=WritePrivateProfilesString(sectionname,KeyWord,DefString,ppProfileName())
      ’将缺省值写入INI文件
      s=DefString
      End If
      GetIniS=s
    End Function

    Public Function GetIniN(ByVal SectionName As String,ByVal KeyWord As String,ByVal DefValue As Ineger)As Integer
      Dim d As Long,s As String
      d=DefValue
      GetIniN=GetPrivateProfileInt(SectionName,
      KeyWord,DefValue,ppProfileName())
      If d<>DefValue Then
       s=""
       d=WritePrivateProfileString(SectionName,
       KeyWord,s,AppProfileName())
      End If
    End Function

    Public Sub SetIniS(ByVal SectionName As String,BtVal KeyWord As String,ByVal ValStr As String)
      Dim res%
      res%=WritePrivateprofileString(SectionName,KeyWord,ValStr,AppProfileName())
    End Sub
    Public Sub SetIniN(ByVal SectionName As String,ByVal KeyWord As String,ByVal ValInt As Integer)
      Dim res%,s$
      s$=Str$(ValInt)
      res%=WriteprivateProfileString(SectionName,KeyWord,s$,AppProfileName())
    End Sub

    SectionName为每一部分的标题,KeyWord为关键词,GetIniS和GetIniN中的DefValue为关键词的缺省 值,SetIniS和SetIniN的ValStr和ValInt为要写入INI文件的关键词的值。为了能更好地说明如何使用以上函数和过程,下面举两个 实例。

    实例1:

      开发应用程序通常要使用数据库和其它一些文件,这些文件的目录(包括路径和文件名)不应在程序中固定,而是保存在INI文件中,程序运行时由INI文件中读入。读入数据库文件的代码如下:

    Dim Databasename As String
    Databasename=GetIniS(“数据库”,“职工”,"")
    If DatabaseName="" Then DatabaseName=InputBox(“请输入数据库《职工》的目录”),App.Title)
    ’也可通过“文件对话框”进行选择
    On Error Resume Next
    Set db=OpenDatabas(DatabaseName)
    If Err<>0 Then
     MsgBox“打开数据库失败!”,MB-ICONSTOP,App.Title:GotoErrorProcessing
    Else
     Set IniS“数据库”,“职工”,DatabaseName
    End If
    On Error GoTo 0
    ……

    实例2:

      为了方便用户操作,有时需要保存用户界面的某些信息,例如窗口的高度和宽度等。装载窗体时,从INI文件中读入窗体高度和宽度,卸载窗体时将窗体当前高度和宽度存入INI文件,代码如下:

    Private Sub Form1_Load()
     ……
     Forml.Height=GetIniN(“窗体1”,“高度”,6000)
     Form1.Width=GetIniN(“窗体1”,“高度”,4500)
    EndSub
       ……
    Private Sub Form1_Unload()
     ……
     SetIniN“窗体1”,“高度”,Me.Height
     SetIniN“窗体1,”宽度“,Me.Width
     ……
    End Sub


    INI文件操作经常用到的一些API函数:
    1. Option   Explicit  
    2.   'win.ini  
    3.   Declare   Function   GetProfileInt   Lib   "kernel32"   Alias   "GetProfileIntA"   _  
    4.   (ByVal   lpAppName   As   String,   _  
    5.   ByVal   lpKeyName   As   String,   _  
    6.   ByVal   nDefault   As   Long)   As   Long  
    7.    
    8.   Declare   Function   GetProfileSection   Lib   "kernel32"   Alias   "GetProfileSectionA"   _  
    9.   (ByVal   lpAppName   As   String,   _  
    10.   ByVal   lpReturnedString   As   String,   _  
    11.   ByVal   nSize   As   Long)   As   Long  
    12.    
    13.   Declare   Function   GetProfileString   Lib   "kernel32"   Alias   "GetProfileStringA"   _  
    14.   (ByVal   lpAppName   As   String,   _  
    15.   ByVal   lpKeyName   As   String,   _  
    16.   ByVal   lpDefault   As   String,   _  
    17.   ByVal   lpReturnedString   As   String,   _  
    18.   ByVal   nSize   As   Long)   As   Long  
    19.    
    20.   Declare   Function   WriteProfileSection   Lib   "kernel32"   Alias   "WriteProfileSectionA"   _  
    21.   (ByVal   lpAppName   As   String,   _  
    22.   ByVal   lpString   As   String)   As   Long  
    23.    
    24.   Declare   Function   WriteProfileString   Lib   "kernel32"   Alias   "WriteProfileStringA"   _  
    25.   (ByVal   lpszSection   As   String,   _  
    26.   ByVal   lpszKeyName   As   String,   _  
    27.   ByVal   lpszString   As   String)   As   Long  
    28.    
    29.   '*.ini      
    30.   Declare   Function   GetPrivateProfileInt   Lib   "kernel32"   Alias   "GetPrivateProfileIntA"   _  
    31.   (ByVal   lpApplicationName   As   String,   _  
    32.   ByVal   lpKeyName   As   String,   _  
    33.   ByVal   nDefault   As   Long,   _  
    34.   ByVal   lpFileName   As   String)   As   Long  
    35.    
    36.   Declare   Function   GetPrivateProfileSection   Lib   "kernel32"   Alias   "GetPrivateProfileSectionA"   _  
    37.   (ByVal   lpAppName   As   String,   _  
    38.   ByVal   lpReturnedString   As   String,   _  
    39.   ByVal   nSize   As   Long,   _  
    40.   ByVal   lpFileName   As   String)   As   Long  
    41.    
    42.   Declare   Function   GetPrivateProfileString   Lib   "kernel32"   Alias   "GetPrivateProfileStringA"   _  
    43.   (ByVal   lpApplicationName   As   String,   _  
    44.   ByVal   lpKeyName   As   Any,   _  
    45.   ByVal   lpDefault   As   String,   _  
    46.   ByVal   lpReturnedString   As   String,   _  
    47.   ByVal   nSize   As   Long,   _  
    48.   ByVal   lpFileName   As   String)   As   Long  
    49.    
    50.   Declare   Function   WritePrivateProfileSection   Lib   "kernel32"   Alias   "WritePrivateProfileSectionA"   _  
    51.   (ByVal   lpAppName   As   String,   _  
    52.   ByVal   lpString   As   String,   _  
    53.   ByVal   lpFileName   As   String)   As   Long  
    54.    
    55.   Declare   Function   WritePrivateProfileString   Lib   "kernel32"   Alias   "WritePrivateProfileStringA"   _  
    56.   (ByVal   lpApplicationName   As   String,   _  
    57.   ByVal   lpKeyName   As   Any,   _  
    58.   ByVal   lpString   As   Any,   _  
    59.   ByVal   lpFileName   As   String)   As   Long
    网上搜索的一个最简单的读写INI文件的例子
    1. Option   Explicit  
    2.   Private   Declare   Function   WritePrivateProfileString   _  
    3.                   Lib   "kernel32"   Alias   "WritePrivateProfileStringA"   _  
    4.                   (ByVal   lpApplicationName   As   String,   _  
    5.                   ByVal   lpKeyName   As   Any,   _  
    6.                   ByVal   lpString   As   Any,   _  
    7.                   ByVal   lpFileName   As   String)   As   Long  
    8.   Public   Declare   Function   GetPrivateProfileString   _  
    9.                   Lib   "kernel32"   Alias   "GetPrivateProfileStringA"   _  
    10.                   (ByVal   lpApplicationName   As   String,   _  
    11.                   ByVal   lpKeyName   As   Any,   _  
    12.                   ByVal   lpDefault   As   String,   _  
    13.                   ByVal   lpReturnedString   As   String,   _  
    14.                   ByVal   nSize   As   Long,   _  
    15.                   ByVal   lpFileName   As   String)   As   Long  
    16.    
    17.    
    18.   'FileName:Ini文件  
    19.   'PathName:小节名  
    20.   'KeyName:值名  
    21.   'WriteValue:值  
    22.   Public   Function   WriteIni(FileName   As   String,   _  
    23.                   PathName   As   String,   _  
    24.                   KeyName   As   String,   _  
    25.                   WriteValue   As   String)   As   Long  
    26.           Dim   Rc   As   Long  
    27.            
    28.           Rc   =   WritePrivateProfileString(PathName,   KeyName,   WriteValue,   FileName)  
    29.           WriteIni   =   Rc  
    30.            
    31.   End   Function  
    32.    
    33.   'FileName:Ini文件  
    34.   'PathName:小节名  
    35.   'KeyName:值名  
    36.   'BackValue:返回值  
    37.   'Default:默认字符  
    38.   Public   Function   ReadIni(FileName   As   String,   _  
    39.                   PathName   As   String,   _  
    40.                   KeyName   As   String,   _  
    41.                   BackValue   As   String,   _  
    42.                   Optional   Default   As   String   =   "缺省")   As   Long  
    43.           Dim   Rc   As   Long  
    44.           Dim   TempNum   As   String  
    45.           Dim   TempStr   As   String  
    46.            
    47.           TempStr   =   String$(255,   Chr$(0))  
    48.           TempNum   =   255  
    49.            
    50.           Rc   =   GetPrivateProfileString(PathName,   KeyName,   Default,   TempStr,   TempNum,   FileName)  
    51.            
    52.           If   Rc   <>   0   Then  
    53.                   BackValue   =   Left$(TempStr,   TempNum)
    54.           End   If  
    55.            
    56.           ReadIni   =   Rc  
    57.            
    58.   End   Function 
    一个可以循环所有Section的例子
    1. Public   File   As   String  
    2.    
    3.   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   Integer,   ByVal   lpFileName   As   String)   As   Integer  
    4.   Private   Declare   Function   WritePrivateProfileString   Lib   "kernel32"   Alias   "WritePrivateProfileStringA"   (ByVal   Appname   As   String,   ByVal   KeyName   As   Any,   ByVal   NewString   As   Any,   ByVal   Filename   As   String)   As   Integer  
    5.    
    6.   Sub   DeleteSection(ByVal   Section   As   String)  
    7.    
    8.   Dim   retval   As   Integer  
    9.    
    10.       retval   =   WritePrivateProfileString(Section,   0&,   "",   File)  
    11.    
    12.   End   Sub  
    13.   Public   Function   SaveSetting(ByVal   Section$,   ByVal   Key$,   ByVal   Value$)  
    14.    
    15.   Dim   retval   As   Integer  
    16.    
    17.       SaveSetting   =   WritePrivateProfileString(Section$,   Key$,   Value$,   File)  
    18.    
    19.   End   Function  
    20.    
    21.   Public   Function   GetSetting(ByVal   Section   As   String,   ByVal   KeyName   As   String)   As   String  
    22.    
    23.   Dim   retval   As   Integer  
    24.   Dim   t   As   String   *   255  
    25.    
    26.       '   Get   the   value  
    27.       retval   =   GetPrivateProfileString(Section,   KeyName,   "unknown   value",   t,   Len(t),   File)  
    28.    
    29.       '   If   there   is   one,   return   it  
    30.       If   retval   >   0   Then  
    31.               GetSetting   =   Left$(t,   retval)  
    32.       Else  
    33.               GetSetting   =   "Unknown   section   or   key"  
    34.       End   If  
    35.    
    36.   End   Function  
    37.    
    38.   //这个可以枚举所有项  
    39.   Public   Function   GetSection(ByVal   Section   As   String,   KeyArray()   As   String)   As   Integer  
    40.    
    41.   Dim   retval   As   Integer  
    42.   '   Allocate   space   for   return   value  
    43.   Dim   t   As   String   *   2500  
    44.   Dim   lastpointer   As   Integer  
    45.   Dim   nullpointer   As   Integer  
    46.   Dim   ArrayCount   As   Integer  
    47.   Dim   keystring   As   String  
    48.        
    49.       ReDim   KeyArray(0)  
    50.        
    51.       '   Get   the   value  
    52.       retval   =   GetPrivateProfileString(Section,   0&,   "",   t,   Len(t),   File)  
    53.        
    54.       '   If   there   is   one,   return   it  
    55.       If   retval   >   0   Then  
    56.               '  
    57.               '   Separate   the   keys   and   store   them   in   the   array  
    58.               nullpointer   =   InStr(t,   Chr$(0))  
    59.               lastpointer   =   1  
    60.               Do   While   (nullpointer   <>   0   And   nullpointer   >   lastpointer   +   1)  
    61.                   '  
    62.                   '   Extract   key   string  
    63.                   keystring   =   Mid$(t,   lastpointer,   nullpointer   -   lastpointer)  
    64.                   '  
    65.                   '   Now   add   to   array  
    66.                   ArrayCount   =   ArrayCount   +   1  
    67.                   ReDim   Preserve   KeyArray(ArrayCount)  
    68.                   KeyArray(ArrayCount)   =   keystring  
    69.                   '  
    70.                   '   Find   next   null  
    71.                   lastpointer   =   nullpointer   +   1  
    72.                   nullpointer   =   InStr(nullpointer   +   1,   t,   Chr$(0))  
    73.               Loop  
    74.       End   If  
    75.       '  
    76.       '   Return   the   number   of   array   elements  
    77.       GetSection   =   ArrayCount  
    78.        
    79.   End   Function






    展开全文
  • VB 读取INI文件通用类模块代码及说明,INI经常被用作配置文件,本类主要是方便用户对INI文件的各种操作,而编写的一个类模块,包括有很多函数和方法,并附有一个使用说明。
  • VB读写ini文件

    千次阅读 2007-08-20 18:44:00
    VB读写ini文件(1)自从注册表诞生以来ini文件正在逐渐失去其市场占有率,然而基于ini文件的独立性,致使其还没有到达退出历史舞台的地步,很多应用程序的初始化和一些界面参数的设置仍然很愿意从ini文件读取,...
  • Option Explicit On ...Module INI 'INICont.bas Ver 1.0+a INI '==================================================================== 'GetIntFromINI( sectionName , keyName , defaultValue, i...
  • 许多 INI 的操作函数都不能对 注释进行操作。 如果一个INI里面的KEY 值比较多,我们都希望能在 一行写上注释,而不是注释单独占一行。这2个函数是我自己写的,完美解决了这个问题。需要的朋友下载! 读写 均可以 ...
  • VB 读写 ini 示例

    2011-07-24 21:17:11
    vb 对配置文件的读写,如保存设置等,利用到了API的相关函数
  • VB实际读写INI文件

    2021-01-31 22:45:00
    - 1) '把读取到的字符串传递到"STRYMINI"函数 STRYMINI = txtBuff Else '把字符串写入INI文件(主项名,子项名,值,保存INI文件的路径) Call WritePrivateProfileString(txtym1, txtym2, txtym3, ULR) End If End ...
  • Java局域网通信——飞鸽传书源代码 28个目标文件 内容索引:JAVA源码,媒体网络,飞鸽传书 Java局域网通信——飞鸽传书源代码,大家都知道VB版、VC版还有Delphi版的飞鸽传书软件,但是Java版的确实不多,因此这个Java...
  • vb 函数 及其解释

    2020-03-31 18:25:32
    Trim 函数 将两头空格全部去除。 eg: MyString = " <-Trim-> " ’ 设置字符串初值。 TrimString = Trim(MyString) ’ TrimString = “<-Trim->” 2、ByVal | ByRef(值的传递方式) ByVal 可选的。...
  • 新建一个VB6工程,直接加载此模块后,就可以调用模块的接口函数,通过调用不同的接口函数,可以实现: 1、枚举INI配置文件的所有主项名称。 2、根据指定的主项名称,可以枚举主项名称下的所有子项名称。 3、根据...
  • VB6.0读写INI文件的四个函数

    千次阅读 2008-11-18 09:15:00
    读写INI文件的四个函数发表日期:2006-08-23作者:[转贴] 出处: 文件名SourceDB.ini文件Private Declare Function GetPrivateProfileString Lib "kernel32" Alias "GetPrivateProfileStringA" (ByVal ...
  • VC操作INI文件的函数主要有: 函数名 功能 备注 GetPrivateProfileInt  读取INI文件指定块的键名对应的整数值。   GetPrivateProfileSection 记取INI文件指定块的所有键名及其...
  • VB API处理INI文件函数

    2008-01-25 11:12:00
     WriteINI(AppName  As   String , KeyName  As   String , Value  As   String , FilePath  As   String ) WritePrivateProfileString AppName, KeyName, Value, FilePath End Function   ...
  • 因为对XML前不了解,所以对XML方式来做配置文件我都不能很好的实现但为了应行,只有先使用INI的文来记录了也就沿用了VB6里的INI文读取方法 '声明INI配置文件读写API函数...
  • 1 工程-添加模块,在右侧工程视图可以发现多了一个Module1 ... 2 比如我在这个模块自定义两个函数,分别为写入和读取INI函数  3 则在主程序已经可以直接调用  ...
  • vb中SendMessage函数

    2011-12-17 13:43:05
     Windows API(应用程序接口)是Windows系列软件为程序开发人员提供的火力强大的“武器库”,在这个武器库,有很多极具威力的武器,SendMessage就是其中之一,它的功能非常丰富,灵活使用这个函数,会给编程工作...
  • VBini等文本文件读取信息的方法

    千次阅读 2008-11-27 11:43:00
    判断文件是否存在#################################################################### 函数名称:FileExist## 参数:Fname 为String型As Boolean## 返回类型:As Boolean################################...
  • 虽然VB.NET读取XML配置信息很方便,但有时开发的过程还是要用到INI文件,在VB.NET读取INI却不像VB中那么方便了,刚才写了个函数,现贴出来,也许各位能用得上。  '函数名: sdGetIniInfo  '功能:读取...
  • 前言:在使用VB编写上位机程序时,想要实现一个功能——每次修改Text文本框的值后,使得关闭程序后该数值能够保存,在下次打开时可以直接使用。本文介绍了INI文件对该功能的支持。 1.INI文件 2.VB操作 ...
  • 读写ini文件 vb源码

    2010-09-29 10:47:43
    程序使用到了一下三个api函数GetPrivateProfileString,WritePrivateProfileString, GetCurrentDirectory 每个函数都有详细的用法说明及注释,方便想操作ini文件的人员参考
  • VB读取ini文件的函数

    千次阅读 2007-02-08 09:41:00
    ErrorMsg = "INI file has not been specifyed!" Exit Function End If If WritePrivateProfileString(Section, key, Value, iniFileName) = 0 Then ErrorMsg = "Failed to write to the ini file!" Exit Function ...
  • <!--google_ad_client = "pub-2947489232296736";/* 728x15, 创建于 08-4-23MSDN */google_ad_slot = "3624277373";google_ad_width = 728;google_ad_height = 15;//--><script type="text/javascript"

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 3,531
精华内容 1,412
关键字:

vb中ini函数