43 lines
1.0 KiB
C++
43 lines
1.0 KiB
C++
#pragma once
|
|
|
|
#include<hgl/util/plist/PAttrib.h>
|
|
#include<hgl/io/FileOutputStream.h>
|
|
#include<hgl/io/TextOutputStream.h>
|
|
|
|
namespace hgl
|
|
{
|
|
using namespace io;
|
|
|
|
/**
|
|
* 保存PList到文本文件中
|
|
* @param filename 文件名
|
|
* @param pa_map 属性列表
|
|
* @param gap_ch 分隔符
|
|
* @return 保存的属性数量
|
|
*/
|
|
template<typename C,ByteOrderMask BOM> static int SaveToTextFile(const OSString &filename,const PAttribMap<C> &pa_map,const String<C> &gap_ch=String<C>("\t"))
|
|
{
|
|
FileOutputStream fos;
|
|
EndianTextOutputStream<BOM> tos(&fos);
|
|
|
|
if(!fos.CreateTrunc(filename))return(-1);
|
|
|
|
tos.WriteBOM();
|
|
|
|
const int count=pa_map.GetCount();
|
|
auto **pa_obj=pa_map.GetDataList();
|
|
|
|
for(int i=0;i<count;i++)
|
|
{
|
|
tos.WriteString((*pa_obj)->key);
|
|
tos.WriteString(gap_ch);
|
|
tos.WriteString((*pa_obj)->value->MakeToString());
|
|
tos.WriteLineEnd();
|
|
|
|
++pa_obj;
|
|
}
|
|
|
|
return(count);
|
|
}
|
|
}//namespace hgl
|