SlideShare a Scribd company logo
1 of 3
Download to read offline
Kỹ thuật truy xuất file .ini



 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à “header0footer0slide0”)
        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


                                                                                       1/3
Kỹ thuật truy xuất file .ini

                 (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=120Style=Bold0”)
      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);


                                                                              2/3
Kỹ thuật truy xuất file .ini

         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.




                                                                                3/3

More Related Content

What's hot

Bai17 kieu du lieu tep va thao tac voi tep-tin 11
Bai17  kieu du lieu tep va thao tac voi tep-tin 11Bai17  kieu du lieu tep va thao tac voi tep-tin 11
Bai17 kieu du lieu tep va thao tac voi tep-tin 11Bich Tuyen
 
Bài 14-15 -Lớp 11: Thao tác với tệp
Bài 14-15 -Lớp 11: Thao tác với tệpBài 14-15 -Lớp 11: Thao tác với tệp
Bài 14-15 -Lớp 11: Thao tác với tệpthaohien1376
 
Php03 php trong-laptrinhwebdong
Php03 php trong-laptrinhwebdongPhp03 php trong-laptrinhwebdong
Php03 php trong-laptrinhwebdongconglongit90
 
Cac lenh linux_co_ban
Cac lenh linux_co_banCac lenh linux_co_ban
Cac lenh linux_co_banNguyen Anh
 
Bài 14 - 15: Kiểu dữ liệu tệp. Thao tác với tệp
Bài 14 - 15: Kiểu dữ liệu tệp. Thao tác với tệpBài 14 - 15: Kiểu dữ liệu tệp. Thao tác với tệp
Bài 14 - 15: Kiểu dữ liệu tệp. Thao tác với tệpnguyennhuhaiau
 
php_nangcao [compatibility mode]
php_nangcao [compatibility mode]php_nangcao [compatibility mode]
php_nangcao [compatibility mode]vokhuyet187
 
Tin11 chuong 05 bai 15
Tin11 chuong 05 bai 15Tin11 chuong 05 bai 15
Tin11 chuong 05 bai 15Cam Tu Chau
 
5 quyen truy-xuat
5 quyen truy-xuat5 quyen truy-xuat
5 quyen truy-xuatvantinhkhuc
 
Giao an tin hoc 11 - Tuan 11 - Bai 16 Vi du lam viec voi tep - v02 - vtq ngoc
Giao an tin hoc 11 - Tuan 11 - Bai 16 Vi du lam viec voi tep - v02 - vtq ngocGiao an tin hoc 11 - Tuan 11 - Bai 16 Vi du lam viec voi tep - v02 - vtq ngoc
Giao an tin hoc 11 - Tuan 11 - Bai 16 Vi du lam viec voi tep - v02 - vtq ngocNgoc Vu Thi Quynh
 
Bai18 bai tap voi tep - tin 11
Bai18  bai tap voi tep - tin 11Bai18  bai tap voi tep - tin 11
Bai18 bai tap voi tep - tin 11Bich Tuyen
 

What's hot (18)

Bai17 kieu du lieu tep va thao tac voi tep-tin 11
Bai17  kieu du lieu tep va thao tac voi tep-tin 11Bai17  kieu du lieu tep va thao tac voi tep-tin 11
Bai17 kieu du lieu tep va thao tac voi tep-tin 11
 
Bài 14-15 -Lớp 11: Thao tác với tệp
Bài 14-15 -Lớp 11: Thao tác với tệpBài 14-15 -Lớp 11: Thao tác với tệp
Bài 14-15 -Lớp 11: Thao tác với tệp
 
Php03 php trong-laptrinhwebdong
Php03 php trong-laptrinhwebdongPhp03 php trong-laptrinhwebdong
Php03 php trong-laptrinhwebdong
 
Cac lenh linux_co_ban
Cac lenh linux_co_banCac lenh linux_co_ban
Cac lenh linux_co_ban
 
Bài 14 - 15: Kiểu dữ liệu tệp. Thao tác với tệp
Bài 14 - 15: Kiểu dữ liệu tệp. Thao tác với tệpBài 14 - 15: Kiểu dữ liệu tệp. Thao tác với tệp
Bài 14 - 15: Kiểu dữ liệu tệp. Thao tác với tệp
 
Session 21
Session 21Session 21
Session 21
 
php_nangcao [compatibility mode]
php_nangcao [compatibility mode]php_nangcao [compatibility mode]
php_nangcao [compatibility mode]
 
Tin11 chuong 05 bai 15
Tin11 chuong 05 bai 15Tin11 chuong 05 bai 15
Tin11 chuong 05 bai 15
 
File
FileFile
File
 
5 quyen truy-xuat
5 quyen truy-xuat5 quyen truy-xuat
5 quyen truy-xuat
 
Cmd
CmdCmd
Cmd
 
Linux security
Linux securityLinux security
Linux security
 
Các lệnh shell cơ bản trong linux
Các lệnh shell cơ bản trong linuxCác lệnh shell cơ bản trong linux
Các lệnh shell cơ bản trong linux
 
ShellProgramming
ShellProgrammingShellProgramming
ShellProgramming
 
Hdubuntu
HdubuntuHdubuntu
Hdubuntu
 
Giao an tin hoc 11 - Tuan 11 - Bai 16 Vi du lam viec voi tep - v02 - vtq ngoc
Giao an tin hoc 11 - Tuan 11 - Bai 16 Vi du lam viec voi tep - v02 - vtq ngocGiao an tin hoc 11 - Tuan 11 - Bai 16 Vi du lam viec voi tep - v02 - vtq ngoc
Giao an tin hoc 11 - Tuan 11 - Bai 16 Vi du lam viec voi tep - v02 - vtq ngoc
 
Subcaption help
Subcaption helpSubcaption help
Subcaption help
 
Bai18 bai tap voi tep - tin 11
Bai18  bai tap voi tep - tin 11Bai18  bai tap voi tep - tin 11
Bai18 bai tap voi tep - tin 11
 

Viewers also liked

As The Crow Flies Show
As The Crow Flies Show  As The Crow Flies Show
As The Crow Flies Show Michael Libby
 
Faffer - "Just Gotta Know"
Faffer - "Just Gotta Know"Faffer - "Just Gotta Know"
Faffer - "Just Gotta Know"Michael Libby
 
Cerc regulation on_renewable_energy_certificates_rec
Cerc regulation on_renewable_energy_certificates_recCerc regulation on_renewable_energy_certificates_rec
Cerc regulation on_renewable_energy_certificates_recSanjayan Kizhakkedathu
 
Pairwise ortholog matrix of cg.ezbiocloud.net
Pairwise ortholog matrix of cg.ezbiocloud.netPairwise ortholog matrix of cg.ezbiocloud.net
Pairwise ortholog matrix of cg.ezbiocloud.netJon Jongsik Chun
 
Multimedia Quiz Event
Multimedia Quiz EventMultimedia Quiz Event
Multimedia Quiz EventVivek Parmar
 
Presentaciónenerwatt evo2
Presentaciónenerwatt evo2Presentaciónenerwatt evo2
Presentaciónenerwatt evo2eliasfersa
 
Seven signs of ethical collapse
Seven signs of ethical collapseSeven signs of ethical collapse
Seven signs of ethical collapsemuratatak
 

Viewers also liked (14)

As The Crow Flies Show
As The Crow Flies Show  As The Crow Flies Show
As The Crow Flies Show
 
Ferald Style Guide
Ferald Style GuideFerald Style Guide
Ferald Style Guide
 
pr
prpr
pr
 
Friend 1
Friend 1Friend 1
Friend 1
 
Faffer - "Just Gotta Know"
Faffer - "Just Gotta Know"Faffer - "Just Gotta Know"
Faffer - "Just Gotta Know"
 
Cerc regulation on_renewable_energy_certificates_rec
Cerc regulation on_renewable_energy_certificates_recCerc regulation on_renewable_energy_certificates_rec
Cerc regulation on_renewable_energy_certificates_rec
 
2012takvim
2012takvim2012takvim
2012takvim
 
BMW Presentation
BMW PresentationBMW Presentation
BMW Presentation
 
Inline Ants X-Treme
Inline Ants X-TremeInline Ants X-Treme
Inline Ants X-Treme
 
Pairwise ortholog matrix of cg.ezbiocloud.net
Pairwise ortholog matrix of cg.ezbiocloud.netPairwise ortholog matrix of cg.ezbiocloud.net
Pairwise ortholog matrix of cg.ezbiocloud.net
 
Ghost Cows
Ghost Cows Ghost Cows
Ghost Cows
 
Multimedia Quiz Event
Multimedia Quiz EventMultimedia Quiz Event
Multimedia Quiz Event
 
Presentaciónenerwatt evo2
Presentaciónenerwatt evo2Presentaciónenerwatt evo2
Presentaciónenerwatt evo2
 
Seven signs of ethical collapse
Seven signs of ethical collapseSeven signs of ethical collapse
Seven signs of ethical collapse
 

Similar to 209 008 ky thuat truy xuat file ini

Phan 2 chuong 10 (tap tin)
Phan 2   chuong 10 (tap tin)Phan 2   chuong 10 (tap tin)
Phan 2 chuong 10 (tap tin)Trần Văn Nam
 
6 - Lập trình C++ cơ bản_print.pdf
6 - Lập trình C++ cơ bản_print.pdf6 - Lập trình C++ cơ bản_print.pdf
6 - Lập trình C++ cơ bản_print.pdfSonNguyen642431
 
Hướng dẫn lập trình quản lý c#
Hướng dẫn lập trình quản lý c#Hướng dẫn lập trình quản lý c#
Hướng dẫn lập trình quản lý c#An Nguyen
 
nhập xuất file 2 c++
nhập xuất file 2 c++nhập xuất file 2 c++
nhập xuất file 2 c++ptquang160492
 
Chuong 03 he_thong_file
Chuong 03 he_thong_fileChuong 03 he_thong_file
Chuong 03 he_thong_filenguyenghia831
 
Core java 9
Core java 9Core java 9
Core java 9. .
 
Bài 4 Lập trình PHP (phần 2) - Giáo trình FPT
Bài 4 Lập trình PHP (phần 2) - Giáo trình FPTBài 4 Lập trình PHP (phần 2) - Giáo trình FPT
Bài 4 Lập trình PHP (phần 2) - Giáo trình FPTMasterCode.vn
 
Chuyên đề ngôn ngữ lập trình auto it
Chuyên đề ngôn ngữ lập trình auto itChuyên đề ngôn ngữ lập trình auto it
Chuyên đề ngôn ngữ lập trình auto itbamboosky4991
 
BÀI 7: Thao tác với file - các vấn đề khác - Giáo trình FPT
BÀI 7: Thao tác với file - các vấn đề khác - Giáo trình FPTBÀI 7: Thao tác với file - các vấn đề khác - Giáo trình FPT
BÀI 7: Thao tác với file - các vấn đề khác - Giáo trình FPTMasterCode.vn
 

Similar to 209 008 ky thuat truy xuat file ini (20)

Phan 2 chuong 10 (tap tin)
Phan 2   chuong 10 (tap tin)Phan 2   chuong 10 (tap tin)
Phan 2 chuong 10 (tap tin)
 
6 - Lập trình C++ cơ bản_print.pdf
6 - Lập trình C++ cơ bản_print.pdf6 - Lập trình C++ cơ bản_print.pdf
6 - Lập trình C++ cơ bản_print.pdf
 
Session 21
Session 21Session 21
Session 21
 
Io trong java
Io trong javaIo trong java
Io trong java
 
IO trong Java
IO trong JavaIO trong Java
IO trong Java
 
Hướng dẫn lập trình quản lý c#
Hướng dẫn lập trình quản lý c#Hướng dẫn lập trình quản lý c#
Hướng dẫn lập trình quản lý c#
 
Bài tập thực hành C#
Bài tập thực hành C#Bài tập thực hành C#
Bài tập thực hành C#
 
Chuong5 (2)
Chuong5 (2)Chuong5 (2)
Chuong5 (2)
 
Chuong3 c
Chuong3 c Chuong3 c
Chuong3 c
 
Oop 13
Oop 13Oop 13
Oop 13
 
nhập xuất file 2 c++
nhập xuất file 2 c++nhập xuất file 2 c++
nhập xuất file 2 c++
 
Chuong 3
Chuong 3Chuong 3
Chuong 3
 
On thitotnghiep
On thitotnghiepOn thitotnghiep
On thitotnghiep
 
Chuong 03 he_thong_file
Chuong 03 he_thong_fileChuong 03 he_thong_file
Chuong 03 he_thong_file
 
Web201 slide 3
Web201   slide 3Web201   slide 3
Web201 slide 3
 
File trong c_
File trong c_File trong c_
File trong c_
 
Core java 9
Core java 9Core java 9
Core java 9
 
Bài 4 Lập trình PHP (phần 2) - Giáo trình FPT
Bài 4 Lập trình PHP (phần 2) - Giáo trình FPTBài 4 Lập trình PHP (phần 2) - Giáo trình FPT
Bài 4 Lập trình PHP (phần 2) - Giáo trình FPT
 
Chuyên đề ngôn ngữ lập trình auto it
Chuyên đề ngôn ngữ lập trình auto itChuyên đề ngôn ngữ lập trình auto it
Chuyên đề ngôn ngữ lập trình auto it
 
BÀI 7: Thao tác với file - các vấn đề khác - Giáo trình FPT
BÀI 7: Thao tác với file - các vấn đề khác - Giáo trình FPTBÀI 7: Thao tác với file - các vấn đề khác - Giáo trình FPT
BÀI 7: Thao tác với file - các vấn đề khác - Giáo trình FPT
 

209 008 ky thuat truy xuat file ini

  • 1. Kỹ thuật truy xuất file .ini 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à “header0footer0slide0”) 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 1/3
  • 2. Kỹ thuật truy xuất file .ini (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=120Style=Bold0”) 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); 2/3
  • 3. Kỹ thuật truy xuất file .ini 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. 3/3