⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 m77.htm

📁 vb教程 vb教程 vb教程 vb教程 vb教程 vb教程 vb教程 vb教程 vb教程 vb教程 vb教程
💻 HTM
字号:
<html>
<head>
<title>VB教程</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
 
</head>
<p align="center"><script src="../../1.js"></script></a>

<body bgcolor="#ffffff" leftmargin="5" topmargin="1" marginheight="5" marginwidth="5">
<div align=center> 
  <table border=0 cellpadding=0 cellspacing=0 width=680 align="center">
    <tbody> 
     
    <tr> 
      <td bgcolor=#000000 height=9> 
        <div align=center class=H1>    <font color="#FFFFFF">用VB开发应用程序如何使用INI文件</font> </font> </font></div>
      </td>
    </tr>
    <tr valign=top> 
      <td class=H1 height=76> 
        <p align="left">  <br>
           </font> <font color="#000000">为 了 方 便 用 户 
          使 用 和 使 系 统 具 有 灵 活 性, 大 多 数 Win-dows 应 用 程 序 将 用 户 所 做 的 选 择 以 及 各 
          种 变 化 的 系 统 信 息 记 录 在 初 始 化 (INI) 文 件 中。 因 此, 当 系 统 的 环 境 发 生 变 化 时, 
          可 以 直 接 修 改 INI 文 件, 而 无 需 修 改 程 序。 由 此 可 见, INI 文 件 对 系 统 功 能 是 至 关 
          重 要 的。 本 文 将 介 绍 采 用 Visual Basic for Windows(下 称 VB) 开 发 Windows 应 
          用 程 序 时 如 何 读 写 INI 文 件。 </font></span></p>
        <p> <font color="#000000">INI 文 件 是 文 本 文 件, 由 若 
          干 部 分 (section) 组 成, 在 每 个 带 括 号 的 标 题 下 面, 是 若 干 个 以 单 个 单 词 开 头 的 
          关 键 词 (keyword) 和 一 个 等 号, 每 个 关 键 词 会 控 制 应 用 程 序 某 个 功 能 的 工 作 方 式, 
          等 号 右 边 的 值 (value) 指 定 关 键 词 的 操 作 方 式。 其 一 般 形 式 如 下 :</font></span></p>
        <p> <br>
          <br>
          [section1]<br>
          keyword1=valuel<br>
          keyword2=value2<br>
          … …<br>
          [section2]<br>
          keyword1=value1<br>
          keyword2=value2<br>
          … …<br>
          <br>
          </font></span></p>
        <p> <font color="#000000">其 中, 如 果 等 号 右 边 无 任 何 
          内 容 (即 value 为 空), 那 就 表 示 Windows 应 用 程 序 已 为 该 关 键 词 指 定 了 缺 省 值, 
          如 果 在 整 个 文 件 中 找 不 到 某 个 关 键 词 (或 整 个 一 部 分), 那 同 样 表 示 为 它 们 指 定 了 
          缺 省 值。 各 个 部 分 所 出 现 的 顺 序 是 无 关 紧 要 的, 在 每 一 个 部 分 里, 各 个 关 键 词 的 顺 
          序 同 样 也 无 关 紧 要。 </font></span></p>
        <p> 读 写 INI 文 件 通 常 有 两 种 
          方 式 : 一 是 在 Windows 中 用 “记 事 本” (Notepad) 对 其 进 行 编 辑, 比 较 简 单, 无 需 
          赘 述; 二 是 由 Windows 应 用 程 序 读 写 INI 文 件, 通 常 是 应 用 程 序 运 行 时 读 取 INI 
          文 件 中 的 信 息, 退 出 应 用 程 序 时 保 存 用 户 对 运 行 环 境 的 某 些 修 改。 </font></span></p>
        <p> 关 键 词 的 值 的 类 型 多 为 字 
          符 串 或 整 数 型, 应 分 两 种 情 况 读 写。 为 了 使 程 序 具 有 可 维 护 性 和 可 移 植 性, 最 好 把 
          对 INI 文 件 的 读 写 封 装 在 一 个 模 块 (RWINI.BAS) 中, 在 RWI-NI.BAS 中 构 造 GetIniS 
          和 GetIniN 函 数 以 及 SetIniS 和 Se-tIniN 过 程, 在 这 些 函 数 和 过 程 中 需 要 使 用 
          WindowsAPI 的 “GetPrivateprofileString”、 “GetPrivateProfileInt” 和 “WritePrivateProfileString” 
          函 数。 </font></span></p>
        <p> <font color="#000000">RWINI.BAS 模 块 的 程 序 代 
          码 如 下 :</font></span></p>
        <p> <font color="#000000">在 General-Declearation 
          部 分 中 声 明 使 用 到 的 Windows API 函 数 :</font></span></p>
        <p> <br>
          <br>
          Declare Function GetprivateprofileString Lib “Ker-nel” (ByVal lpAppName 
          As String,<br>
          ByVal lpKeyName As String, ByVal lpDefault As String, ByVal lpRetrm-StringAs<br>
          String, ByVal cbReturnString As Integer, ByVal Filename As String) As 
          Integer<br>
          Declare Function GetPrivatePfileInt Lib “Kernel” (ByVal lpAppName As 
          String,<br>
          ByVal lpKeyName As String, ByVal lpDefault As Integer, ByVal Filename 
          As String) As<br>
          Integer<br>
          Declare Funciton WritePrivateprofileString Lib “Kernel” (ByVal lpApplicationName<br>
          As String, ByVal lpKeyName As String, ByVal lpString As String, ByVal 
          lplFileName<br>
          As String) As Integer<br>
          Function GetIniS(ByVal SectionName As String, ByVal KeyWord As String, 
          ByValDefString<br>
          As String) As String<br>
          Dim ResultString As String *144, Temp As Integer<br>
          Dim s As String, i As Integer<br>
          Temp%=GetPrivateProfileString(SectionName, KeyWord, “”, ResultString, 
          144, AppProfileName())<br>
          ‘检 索 关 键 词 的 值<br>
          If Temp%> 0 Then ‘关 键 词 的 值 不 为 空<br>
          s=“”<br>
          For i=1 To 144<br>
          If Asc(Mid$(ResultString, i, 1)) =0 Then<br>
          Exit For<br>
          Else<br>
          s=s &amp; Mid$(ResultString, i, 1)<br>
          End If<br>
          Next<br>
          Else<br>
          Temp%=WritePrivateProfilesString(sectionname, KeyWord, DefString, ppProfileName())<br>
          ‘将 缺 省 值 写 入 INI 文 件<br>
          s=DefString<br>
          End If<br>
          GetIniS=s<br>
          End Function<br>
          Function GetIniN(ByVal SectionName As String, ByVal KeyWord As String, 
          ByValDefValue<br>
          As Ineger) As Integer<br>
          Dim d As Long, s As String<br>
          d=DefValue<br>
          GetIniN=GetPrivate ProfileInt(SectionName,<br>
          KeyWord, DefValue, ppProfileName())<br>
          If d <> DefValue Then<br>
          s=“” &amp;d<br>
          d=WritePrivateProfileString(SectionName,<br>
          KeyWord, s, AppProfileName())<br>
          End If<br>
          End Function<br>
          Sub SetIniS(ByVal SectionName As String, BtVa KeyWord As String, ByVal 
          ValStr<br>
          As String)<br>
          Dim res%<br>
          res%=WritePrivateprofileString(SectionName, KeyWord, ValStr, AppProfileName())<br>
          End Sub<br>
          Sub SetIniN(ByVal SectionName As String, ByVal KeyWord As String, ByVal 
          ValInt<br>
          As Integer)<br>
          Dim res%, s$<br>
          s$=Str$(ValInt)<br>
          res%=WriteprivateProfileString(SectionName, KeyWord, s$, AppProfileName())<br>
          End Sub</font></span></p>
        <p> <font color="#000000">SectionName 为 每 一 部 分 
          的 标 题, KeyWord 为 关 键 词, GetIniS 和 GetIniN 中 的 DefValue 为 关 键 词 的 缺 省 
          值, SetIniS 和 SetIniN 的 ValStr 和 ValInt 为 要 写 入 INI 文 件 的 关 键 词 的 值。 
          为 了 能 更 好 地 说 明 如 何 使 用 以 上 函 数 和 过 程, 下 面 举 两 个 实 例。 </font></span></p>
        <p> <font color="#000000">实 例 1:</font></span></p>
        <p> 开 发 应 用 程 序 通 常 要 使 用 
          数 据 库 和 其 它 一 些 文 件, 这 些 文 件 的 目 录 (包 括 路 径 和 文 件 名) 不 应 在 程 序 中 固 定, 
          而 是 保 存 在 INI 文 件 中, 程 序 运 行 时 由 INI 文 件 中 读 入。 读 入 数 据 库 文 件 的 代 码 
          如 下 :</font></span></p>
        <p> <br>
          <br>
          Dim Databasename As String<br>
          Databasename=GetIniS(“数 据 库”, “职 工”, “”)<br>
          If DatabaseName=“” Then DatabaseName=InputBox(“请 输 入 数 据 库 《职 工》 的 目 
          录”),<br>
          App.Title)’ 也 可 通 过 “文 件 对 话 框” 进 行 选 择<br>
          On Error Resume Next<br>
          Set db=OpenDatabas(DatabaseName)<br>
          If Err <> 0 Then<br>
          MsgBox“打 开 数 据 库 失 败 !”, MB-<br>
          ICONSTOP, App.Title:Goto ErrorProcessing<br>
          Else<br>
          SetIniS“数 据 库”, “职 工”, DatabaseName<br>
          End If<br>
          On Error GoTo 0<br>
          … …<br>
          <br>
          </font></span></p>
        <p> <font color="#000000">实 例 2:</font></span></p>
        <p> <font color="#000000">为 了 方 便 用 户 操 作, 有 时 需 
          要 保 存 用 户 界 面 的 某 些 信 息, 例 如 窗 口 的 高 度 和 宽 度 等。 装 载 窗 体 时, 从 INI 文 件 
          中 读 入 窗 体 高 度 和 宽 度, 卸 载 窗 体 时 将 窗 体 当 前 高 度 和 宽 度 存 入 INI 文 件, 代 码 
          如 下 :</font></span></p>
        <p> <br>
          <br>
          Sub Form1_Load()<br>
          … …<br>
          Forml.Height=GetIniN(“窗 体 1”, “高 度”, 6000)<br>
          Form1.Width=GetIniN(“窗 体 1”, “高 度”, 4500)<br>
          End Sub<br>
          … …<br>
          Sub Form1_Unload()<br>
          … …<br>
          SetIniN“窗 体 1”, “高 度”, Me.Height<br>
          SetIniN“窗 体 1,” 宽 度 “, Me.Width<br>
          … …<br>
          End Sub </font></span>
        <p align=left>&nbsp;</p>
        <p align="left"> 
  </table>
</div>
<p align="center"><a href="../../pian/vb.htm">回首页</a>
<p align="center"><script src="../../2.js"></script></a>
</body>
</html>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -