STLSoft „s 1.10 alpha zawiera platformstl::properties_file
klasa. Może być używany do odczytu z pliku:
using platformstl::properties_file;
properties_file properties("stuff.properties");
properties_file::value_type value = properties["name"];
lub z pamięci:
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"];
Wygląda najnowszym wydaniu 1.10 ma kilka wszechstronnych testów jednostkowych, i że już zmodernizowane klasa do obsługi wszystkich reguł i przykładów podanych w Java documentation.
jedynie widoczne na ścieranie jest to, że value_type
jest wystąpienie stlsoft::basic_string_view
(opisany w this Dr Dobb's article), która jest nieco podobna do std::string
, ale faktycznie nie właścicielem pamięci. Prawdopodobnie robią to, aby uniknąć niepotrzebnych alokacji, prawdopodobnie ze względu na wydajność, co jest bardzo bliskie dla projektu STLSoft. Ale to oznacza, że nie można po prostu napisać
std::string value0 = properties["name0"];
Można jednak to zrobić:
std::string value0 = properties["name0"].c_str();
a to:
std::cout << properties["name0"];
Nie jestem pewien, zgadzam się z ta decyzja projektowa, ponieważ prawdopodobne jest, że czytanie właściwości - z pliku lub z pamięci - będzie wymagało bezwzględnego ostatniego cyklu. Myślę, że powinni go zmienić domyślnie na std::string
, a następnie użyć "widoku łańcucha", jeśli jest to wyraźnie wymagane.
Poza tym klasa properties_file
wygląda na to, że działa.
Not własny e xplanatory właściwie - co to jest "plik właściwości"? –
Cóż, domyślam się, że format pliku właściwości - podstawowy element Javy - nie jest tak znany poza światem Java, co częściowo wyjaśnia, dlaczego nie mogę go znaleźć. Zobacz http://en.wikipedia.org/wiki/.properties (Nie mam wystarczającej reputacji, aby dodać to do pytania.) – JamieH
Dodałem to dla ciebie - mam nadzieję, że poprawnie sparafrazowałem. –