Hướng dẫn thực hành Lập trình C trên Windows - Kỹ thuật truy xuất file .ini

Hàm cho sốlượng và danh sách tên các section

DWORD GetPrivateProfileSectionNames(

LPTSTR lpszReturnBuffer,

// buffer nhận danh sách các tên section trảvề

DWORD nSize, // kích thước buffer

LPCTSTR lpFileName // tên file

);

Danh sách các section (tên section) trong buffer, các tên section nối tiếp nhau cách

nhau bởi ký tự0. buffer chứa tên các section tìm thấy trong file (ví dụcó 3 section tên lần

lượt là header, footer và slide, thì buffer sẽlà “header\0footer\0slide\0”)

pdf3 trang | Chuyên mục: Visual C++ | Chia sẻ: dkS00TYs | Lượt xem: 1649 | Lượt tải: 4download
Tóm tắt nội dung Hướng dẫn thực hành Lập trình C trên Windows - Kỹ thuật truy xuất file .ini, để xem tài liệu hoàn chỉnh bạn click vào nút "TẢI VỀ" ở trên
Kỹ thuật truy xuất file .ini 
 1/3 
 Kỹ thuật truy xuất File .ini 
Lu Buon Vinh 
Khoa Công nghệ Thông tin, trường ĐH Khoa học Tự nhiên TP.HCM 
(thelastsamuraitor@yahoo.ca) 
Phiên bản cập nhật ngày 12/10/2004 
Windows hỗ trợ việc truy xuất tập tin kiểu .ini như ví dụ trong bằng các hàm được 
giới thiệu sau đây. Chú ý, khái niệm section chỉ mỗi phần trong tập tin bắt đầu với tên section 
lưu trữ dạng [tên section], tiếp theo sau là các cặp khoá –giá trị như : Size=12. 
Ví dụ : 
[ChuongTrinh] 
Ten=Chuong trinh Rong Vang 
Logo=rongvang.bmp 
ThoiGianTraLoi=15 
SoCauHoiToiDa=16 
Hàm cho số lượng và danh sách tên các section 
DWORD GetPrivateProfileSectionNames( 
LPTSTR lpszReturnBuffer, 
// buffer nhận danh sách các tên section trả về 
DWORD nSize, // kích thước buffer 
LPCTSTR lpFileName // tên file 
); 
Danh sách các section (tên section) trong buffer, các tên section nối tiếp nhau cách 
nhau bởi ký tự 0. buffer chứa tên các section tìm thấy trong file (ví dụ có 3 section tên lần 
lượt là header, footer và slide, thì buffer sẽ là “header\0footer\0slide\0”) 
Phải tìm cách trích bufer thành mảng các chuỗi tên section. 
Ví dụ : 
LPSTR *buf = new char[1000]; 
memset(buf,0,1000) 
GetPrivateProfileSectionNames(buf,1000,"d:\\abc.ini"); 
CStringArray arr; 
for(int i=0;i<1000;i++) 
 if( (i==0 && buf[i]!=0) || // dau chuoi 
Kỹ thuật truy xuất file .ini 
 2/3 
 (i>0 && buf[i]!=0 && buf[i-1]==0)) // chuoi tiep theo 
 { 
 char *temp = &buf[i]; 
 arr.Add(temp); 
 } 
 int sectioncount = arr.GetSize(); 
 delete[] buf; 
Hàm truy cập các cặp key-value của section 
DWORD GetPrivateProfileSection( 
LPCTSTR lpAppName, // tên section cần trích 
LPTSTR lpReturnedString, // return buffer 
DWORD nSize, // kích thước buffer 
LPCTSTR lpFileName // tên file); 
Buffer chứa danh sách các cặp khoá – giá trị của section cho trước, nối tiếp nhau 
cách nhau bởi ký tự 0. Buffer chứa tên các cặp key-value tìm thấy trong section (ví dụ có 
trong section Header có các cặp Size=12 và Style=Bold, thì buffer sẽ là 
“Size=12\0Style=Bold\0”) 
Phải tìm cách trích bufer thành mảng các chuỗi tên key hoặc đếm có bao nhiêu cặp 
khoá – giá trị. 
Ví dụ: 
GetPrivateProfileSection (”Header”,buf,1000,"d:\\abc.ini"); 
Hàm truy cập giá trị của một key trong một section 
Lấy giá trị nguyên của khoá 
UINT GetPrivateProfileInt( 
LPCTSTR lpAppName, // tên section 
LPCTSTR lpKeyName, // tên key 
INT nDefault, // nếu không tìm thấy thì sử dụng giá trị này 
LPCTSTR lpFileName // tên file ); 
Lấy giá trị chuỗi của khoá 
DWORD GetPrivateProfileString( 
LPCTSTR lpAppName, // tên section 
LPCTSTR lpKeyName, // tên key 
LPCTSTR lpDefault,//nếu không tìm thấy, sử dụng giá trị này 
LPTSTR lpReturnedString, // destination buffer 
DWORD nSize, LPCTSTR lpFileName // initialization file name); 
Kỹ thuật truy xuất file .ini 
 3/3 
DWORD trả về tương ứng giá trị nguyên kích thước của khoá cần tìm 
BUFFER trả về tương ứng giá trị chuỗi của giá trị tương ứng khoá trong section cho 
trước. 
Ví dụ: 
int size = GetPrivateProfileInt (”Header”,”Size”,"d:\\abc.ini"); 
GetPrivateProfileString (”Header”,”Font”,buf,1000,"d:\\abc.ini"); 
CString font = buf; 
Chú ý: Nếu như không tìm thấy tập tin kết quả sẽ là kết quả mặc định. o Nếu như 
không tìm thấy tên section hay tên key, kết quả sẽ là kết quả mặc định. 
Nếu muốn biết thêm thông tin về các hàm, tham khảo thêm trong MSDN. 

File đính kèm:

  • pdfHướng dẫn thực hành Lập trình C trên Windows - Kỹ thuật truy xuất file .ini.pdf