5. Những vấn đề xung quanh hàm GetPrivateProfileString
Ở đoạn code mẫu
Bạn cần đăng nhập để thấy link
, tôi đã viết một chút chú thích. Và ở phần này tôi muốn nói rõ hơn những trở ngại khi dùng hàm
GetPrivateProfileString.
Trở ngại đầu tiên là chúng ta phải khai báo
Declare. Điều này thì cũng giống như các hàm API khác, ừ thì tạm thời cũng không khó khăn gì lắm.
Trở ngại thứ hai là việc lấy giá trị trả về thật là rắc rối. Trước đó nào là phải chuẩn bị vùng trống để lưu giá trị, rồi sau khi lấy được lại phải gọt tỉa các phần dư thừa không cần thiết. Thật là tốn quá nhiều công sức.
Trở ngại thứ ba, đó là tốc độ xử lý chậm. Cứ mỗi lần gọi hàm này, mặc dù chúng ta không thể nhìn được bằng mắt, tuy nhiên mỗi lần hàm
GetPrivateProfileString thực thi, nó sẽ mở file ini và sau đó đóng file ini.
Nếu việc lấy giá trị ít thì không sao, nhưng nhiều thì sẽ là nguyên nhân làm cho chương trình chạy chậm.
Cuối cùng là vấn đề thứ tư, hạn chế ký tự trong file INI là nó chỉ chấp nhận mã ký tự Shift-JIS (có thể tham khảo mã ký tự
Bạn cần đăng nhập để thấy link
). Trong khi đó việc sử dụng UTF-8 đang ngày càng tăng, cứ suy nghĩ tới điều đó thôi đã thấy phiền hà rồi. Cho nên các bạn cần cân nhắc.
Lời người dịch: Nếu chỉ đơn thuần lưu tên biến và giá trị, sử dụng cách viết không dấu-mình nghĩ không có vấn đề gì, đây không là trở ngại.
(
Hết)
=========================================
Trong khuôn khổ topic này chỉ bàn về việc lấy thông tin trong file INI. Về việc ghi thông tin vào file INI, chúng tôi sẽ có một topic khác.
Về ý kiến của bạn
@NhanSu :
Vì biến lret chứa độ dài của chuỗi trả về nên có thể dùng left(svalue,lret) để lấy chuỗi. Nếu dùng Trim có thể gây ra thay đổi chuỗi ban đầu trong file INI.
Đúng, nếu bạn biết chính xác độ dài chuỗi ký tự cần lấy thì khi đó trích xuất phần giá trị của svalue sẽ không cần các xử lý phức tạp ở bài viết trước.