diff --git a/CMakeLists.txt b/CMakeLists.txt index 13f98c4..ca7a239 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -99,3 +99,7 @@ add_executable(AndroidDeviceAnalysis android/AndroidDeviceAnalysis/main.cpp android/AndroidDeviceAnalysis/LoadRecordFile.cpp) cm_example_project("android" AndroidDeviceAnalysis) +#################################################################################################### + +add_executable(PAttribTest utils/PAttribTest.cpp) +cm_example_project("utils" PAttribTest) \ No newline at end of file diff --git a/utils/PAttribTest.cpp b/utils/PAttribTest.cpp new file mode 100644 index 0000000..77b8af8 --- /dev/null +++ b/utils/PAttribTest.cpp @@ -0,0 +1,53 @@ +#include +#include +#include +#include + +using namespace hgl; +using namespace std; + +int main(int argc,char **argv) +{ + if(argc!=3) + { + std::cout<< "PAttribTest use format:\t[cmd] [filename]"< pl_set; + + // 属性名称 缺省值 最小值 最大值 小数位数 + //--------------------------------------------+-----------+---------------+--------+----------+------ + auto *name =pl_set.CreateStringAttrib( "name", "Anonymous"); + auto *sex =pl_set.CreateBoolAttrib( "sex", true); + auto *age =pl_set.CreateNumberAttrib( "age", 17, 1, 120); + auto *temp =pl_set.CreateFloatAttrib( "temp", 36.5, 35, 42, 2); + + const char cmd=argv[1][0]; + + if(cmd=='c'||cmd=='C') + { + SaveToTextFile(ToOSString(argv[2]),pl_set); + } + else + { + LoadFromTextFile(ToOSString(argv[2]),pl_set); + + //lambda方式 + pl_set.Enum([](const String &key,PAttribBase *attr) + { + std::cout<MakeToString().c_str()<MakeToString().c_str()<MakeToString().c_str()<MakeToString().c_str()<