STLSoft 's 1.10 alpha chứa một platformstl::properties_file
lớp học. Nó có thể được sử dụng để đọc từ một tập tin:
using platformstl::properties_file;
properties_file properties("stuff.properties");
properties_file::value_type value = properties["name"];
hoặc từ bộ nhớ:
properties_file properties(
"name0=value1\n name1 value1 \n name\\ 2 : value\\ 2 ",
properties_file::contents);
properties_file::value_type value0 = properties["name0"];
properties_file::value_type value1 = properties["name1"];
properties_file::value_type value2 = properties["name 2"];
Hình như phiên bản mới nhất 1.10 có một bó toàn diện đơn vị xét nghiệm, và rằng họ đã nâng cấp để xử lý tất cả các quy tắc và ví dụ được đưa ra trong Java documentation.
Các chỉ chà rõ ràng là value_type
là một thể hiện của stlsoft::basic_string_view
(được mô tả trong this Dr Dobb's article), mà là hơi tương tự như std::string
, nhưng không thực sự sở hữu bộ nhớ của nó. Có lẽ họ làm điều này để tránh phân bổ không cần thiết, có lẽ vì lý do hiệu suất, đó là một cái gì đó thiết kế STLSoft giữ thân yêu. Nhưng nó có nghĩa là bạn không thể chỉ viết
std::string value0 = properties["name0"];
Bạn có thể, tuy nhiên, làm được điều này:
std::string value0 = properties["name0"].c_str();
và điều này:
std::cout << properties["name0"];
Tôi không chắc chắn Tôi đồng ý với quyết định thiết kế này, vì khả năng đọc các thuộc tính - từ tệp hoặc từ bộ nhớ là như thế nào - sẽ cần chu trình cuối cùng tuyệt đối. Tôi nghĩ rằng họ nên thay đổi nó để sử dụng std::string
theo mặc định, và sau đó sử dụng "chuỗi xem" nếu yêu cầu một cách rõ ràng.
Khác hơn thế, lớp học properties_file
có vẻ như nó thực hiện thủ thuật.
Không tự e xplanatory thực sự - một "tập tin thuộc tính" là gì? –
Vâng, tôi đoán rằng định dạng tệp thuộc tính - một yếu tố chủ yếu của Java - không được biết đến rộng rãi bên ngoài thế giới Java, điều này phần nào giải thích tại sao tôi không thể tìm thấy nó. Xem http://en.wikipedia.org/wiki/.properties (Tôi không có đủ danh tiếng để thêm câu hỏi này vào câu hỏi.) – JamieH
Tôi đã thêm nó cho bạn - Tôi hy vọng rằng tôi đã diễn giải chính xác. –