用VB開發應用程序如何使用INI文件 |
返回 |
為 了 方 便 用 戶 使 用 和 使 系 統 具 有 靈 活 性, 大 多 數 Win-dows 應 用 程 序 將 用 戶 所 做 的 選 擇 以 及 各 種 變 化 的 系 統 信 息 記 錄 在 初 始 化 (INI) 文 件 中。 因 此, 當 系 統 的 環 境 發 生 變 化 時, 可 以 直 接 修 改 INI 文 件, 而 無 需 修 改 程 序。 由 此 可 見, INI 文 件 對 系 統 功 能 是 至 關 重 要 的。 本 文 將 介 紹 采 用 Visual Basic for Windows(下 稱 VB) 開 發 Windows 應 用 程 序 時 如 何 讀 寫 INI 文 件。
INI 文 件 是 文 本 文 件, 由 若 干 部 分 (section) 組 成, 在 每 個 帶 括 號 的 標 題 下 面, 是 若 干 個 以 單 個 單 詞 開 頭 的 關 鍵 詞 (keyword) 和 一 個 等 號, 每 個 關 鍵 詞 會 控 制 應 用 程 序 某 個 功 能 的 工 作 方 式, 等 號 右 邊 的 值 (value) 指 定 關 鍵 詞 的 操 作 方 式。 其 一 般 形 式 如 下 :
其 中, 如 果 等 號 右 邊 無 任 何 內 容 (即 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 部 分 中 聲 明 使 用 到 的 Windows API 函 數 :
SectionName 為 每 一 部 分 的 標 題, KeyWord 為 關 鍵 詞, GetIniS 和 GetIniN 中 的 DefValue 為 關 鍵 詞 的 缺 省 值, SetIniS 和 SetIniN 的 ValStr 和 ValInt 為 要 寫 入 INI 文 件 的 關 鍵 詞 的 值。 為 了 能 更 好 地 說 明 如 何 使 用 以 上 函 數 和 過 程, 下 面 舉 兩 個 實 例。 實 例 1: 開 發 應 用 程 序 通 常 要 使 用 數 據 庫 和 其 它 一 些 文 件, 這 些 文 件 的 目 錄 (包 括 路 徑 和 文 件 名) 不 應 在 程 序 中 固 定, 而 是 保 存 在 INI 文 件 中, 程 序 運 行 時 由 INI 文 件 中 讀 入。 讀 入 數 據 庫 文 件 的 代 碼 如 下 :
實 例 2: 為 了 方 便 用 戶 操 作, 有 時 需 要 保 存 用 戶 界 面 的 某 些 信 息, 例 如 窗 口 的 高 度 和 寬 度 等。 裝 載 窗 體 時, 從 INI 文 件 中 讀 入 窗 體 高 度 和 寬 度, 卸 載 窗 體 時 將 窗 體 當 前 高 度 和 寬 度 存 入 INI 文 件, 代 碼 如 下 :
|
文章來源于領測軟件測試網 http://www.kjueaiud.com/
版權所有(C) 2003-2010 TestAge(領測軟件測試網)|領測國際科技(北京)有限公司|軟件測試工程師培訓網 All Rights Reserved
北京市海淀區中關村南大街9號北京理工科技大廈1402室 京ICP備10010545號-5
技術支持和業務聯系:info@testage.com.cn 電話:010-51297073
老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月