用API函式讀寫初始化檔案 ini 的方法

2021-07-28 14:07:38 字數 2339 閱讀 1991

在易語言中讀寫初始化檔案(*.ini)的方法 易語言有讀寫配置項的命令,但api的更豐富。以前以為初始化檔案也和普通檔案的讀寫方法一樣,今天看了一下api for vb 的說明,才知道windows中已經有一套很簡便的讀寫方法了,想知道嗎?follow me!

1.初始化檔案的格式(雙斜槓後面的是說明): [aaa] //中括號裡的是小節名 ver=3.7 //等號之前的是條目名,之後的是數值 title=aaa //等號之前的是條目名,之後的是字串 rrr=0 //等號之前的是條目名,之後的是數值 [bbb] //中括號裡的是小節名 sdf=120 //等號之前的是條目名,之後的是數值 ff=4 //等號之前的是條目名,之後的是數值

2.三個dll命令: dll命令:從初始檔案讀取數值返回值型別:整數型備註:找到的條目的值;如指定的條目未找到,就返回預設值。如找到的數字不是乙個合法的整數,函式會返回其中合法的一部分。如,對於「xyz=55zz」這個條目,函式返回55。這個函式也能理解採用標準c語言格式的十六進製制數字

dll庫檔名:kernel32 在dll庫中的命令名:getprivateprofileinta 

引數:初始檔案小節名 資料型別:文字型 備註:不區分大小寫 

引數:初始檔案條目名 資料型別:文字型 備註:不區分大小寫 

引數:預設返回值 資料型別:整數型 備註:指定條目未找到時返回的預設值 

引數:初始檔名 資料型別:文字型 備註:初始化檔案的名字。

如果沒有指定完整的路徑名,windows就會在windows目錄中搜尋檔案

dll命令:寫初始檔案返回值型別:整數型備註:非零表示成功,零表示失敗 

dll庫檔名:kernel32 在dll庫中的命令名:writeprivateprofilestringa 

引數:小節名 資料型別:文字型 備註:不區分大小寫 

引數:條目名 資料型別:文字型 備註:不區分大小寫 

引數:值 資料型別:文字型 備註:為這個項寫入的字串值 

引數:初始檔名 資料型別:文字型 備註:初始化檔案的名字。

如果沒有指定完整路徑名,則windows會在windows目錄查詢檔案。如果檔案沒有找到,則函式會建立它

dll命令:從初始檔案讀取字串返回值型別:整數型備註:複製到字串緩衝區的位元組數量,其中不包括那些null中止字元。如字串緩衝區不夠大,不能容下全部資訊,就返回 裝載到緩衝區的最大數量-1(若小節名或條目名為null,則返回 裝載到緩衝區的最大數量-2)

dll庫檔名:kernel32 

在dll庫中的命令名:getprivateprofilestringa 引數:小節名 資料型別:文字型 備註:不區分大小寫 

引數:條目名 資料型別:文字型 備註: 不區分大小寫 

引數:預設返回值 資料型別:文字型 備註:指定的條目沒有找到時返回的預設值。可設為空("") 

引數:字串緩衝區 資料型別:文字型 備註:指定乙個字串緩衝區,長度至少為 裝載到緩衝區的最大數量 

引數:裝載到緩衝區的最大數量 資料型別:整數型 備註:指定裝載到字串緩衝區的最大字元數量 

引數:初始檔名 資料型別:文字型 備註:初始化檔案的名字。

如沒有指定乙個完整路徑名,windows就在windows目錄中查詢檔案

3.源程式舉例(初始化檔案為當前目錄下的乙個名為「config.ini」的檔案,內容如上):

子程式:讀寫初始化檔案

區域性容器:容器1 資料型別:整數型

區域性容器:容器2 資料型別:文字型

區域性容器:初始化檔名 資料型別:文字型

初始化檔名 = 取執行目錄 () + 「\」+「config.ini」

容器1 = 從初始檔案讀取數值 (「aaa」, 「ver」, -1, 初始化檔名)

資訊框 (「config.ini中aaa小節ver(=3.7)條目的值=」 + 到文字 (容器1), 0, )

容器1 = 從初始檔案讀取數值 (「bbb」, 「sdf」, -1, 初始化檔名)

資訊框 (「config.ini中bbb小節sdf條目的值=」 + 到文字 (容器1), 0, )

容器2 = 取空白文字 (255)

容器1 = 從初始檔案讀取字串 (「aaa」, 「title」, 「error」, 容器2, 255, 初始化檔名)

資訊框 (「config.ini中aaa小節title條目的值=」 + 容器2, 0, )

容器1 = 寫初始檔案 (「ccc」, 「write」, 「ture」, 初始化檔名)

如果 (容器1 ≠ 0) 

資訊框 (「寫入成功!」, 0, ) 

否則 資訊框 (「寫入失敗!」, 0, ) 

如果結束

*以上程式在e2.04版中測試通過

4.結束語: 看起來很多很複雜,其實很簡單的,願大家都能寫出好的易程式來!

建構函式初始化列表和初始化函式

其實並沒有所謂的初始化函式的概念,本文中的初始化函式只是說明在函式體內進行賦值。而初始化列表才是真正意義上的物件初始化。使用初始化列表效率會高一點。c 規定,物件的成員變數的初始化動作發生在進入建構函式本體之前。在建構函式體內只是賦值,並不是初始化。請看下面這個栗子 class base publi...

GLUT初始化函式

void glutinit int argc,char argv 初始化glut庫。對應main函式的形式應是 int main int argc,char argv 這個函式從main函式獲取其兩個引數。void glutinitwindowsize int width,int height 設定...

memset函式初始化

對於絕大多數編譯器來講,char namekey 15 與memset namekey,0x0,sizeof namekey 或memset namekey,0 sizeof namekey 這三個是一樣的。但是有的編譯器,char namekey 15 只將namekey 0 給賦值為 0 其他成...