void CPnSPresetsDlg::StringToParams(CString str, CString& label, double& PosX, double& PosY, double& ZoomX, double& ZoomY)
{
	int i = 0, j = 0;

	for (CString token = str.Tokenize(_T(","), i); !token.IsEmpty(); token = str.Tokenize(_T(","), i), j++) {
		if (j == 0) {
			label = token;
		} else {
			float f = 0;

			if (_stscanf_s(token, _T("%f"), &f) != 1) {
				continue;
			}

			switch (j) {
				case 1:
					PosX = f;
					break;
				case 2:
					PosY = f;
					break;
				case 3:
					ZoomX = f;
					break;
				case 4:
					ZoomY = f;
					break;
				default:
					break;
			}
		}
	}
}
예제 #2
0
bool UpdateChecker::ParseVersion(const CString& versionStr, Version& version)
{
    bool success = false;

    if (!versionStr.IsEmpty()) {
        UINT v[4];
        int curPos = 0;
        UINT i = 0;
        CString resToken = versionStr.Tokenize(_T("."), curPos);

        success = !resToken.IsEmpty();

        while (!resToken.IsEmpty() && i < _countof(v) && success) {
            if (1 != _stscanf_s(resToken, _T("%u"), v + i)) {
                success = false;
            }

            resToken = versionStr.Tokenize(_T("."), curPos);
            i++;
        }

        success = success && (i == _countof(v));

        if (success) {
            version.major = v[0];
            version.minor = v[1];
            version.patch = v[2];
            version.revision = v[3];
        }
    }

    return success;
}
예제 #3
0
BOOL CPrizeEndDlg::PutPrizeResult(CString putData) {
// http://www.cslive.localhost/KIOSK_MANAGE/SURVEY_RESULT/put_prizes_yn_data.php?
// nmCrGb=DM_KIOSKINFO&nmKey=8&nmMac=XXXX-XXXX-XXXX-XXXX&nmPrzPk=1&nmPhoneSvyYn=Y&nmTel01=010&nmTel02=1234&nmTel03=5678
	BOOL ret = FALSE;
	int pos = 0;

	m_strURL.Empty();
	m_strPostData.Empty();
	tstring strPutRet;

	CString przPk = putData.Tokenize(L"|", pos);
	CString phoneYN = putData.Tokenize(L"|", pos);
	CString phone01 = putData.Tokenize(L"|", pos);
	CString phone02 = putData.Tokenize(L"|", pos);
	CString phone03 = putData.Tokenize(L"|", pos);

	m_strURL.Format(_T("http://%s/%s"), SERVER_URL, PUT_PRIZE_DATA);
	m_strPostData.Format(_T("nmCrGb=DM_KIOSKINFO&nmKey=%s&nmMac=%s&nmPrzPk=%s&nmPhoneSvyYn=%s&nmTel01=%s&nmTel02=%s&nmTel03=%s"), 
		m_encode.URLEncode(m_strKioskKey), m_encode.URLEncode(m_strKioskMacAddress),
		m_encode.URLEncode(przPk), m_encode.URLEncode(phoneYN), 
		m_encode.URLEncode(phone01), m_encode.URLEncode(phone02), m_encode.URLEncode(phone03));
	strPutRet = (LPCTSTR)m_http.GetPage(m_strURL, TRUE, (LPCTSTR)m_strPostData, m_strPostData.GetLength());

	if(strPutRet.compare(L"FALSE") == 0) {
		ret = FALSE;
	} else {
		ret = TRUE;
	}

	return ret;
}
예제 #4
0
int CSheet::loadFrom(std::ifstream& in)  
{  
	int lines = 0;  
	while(!in.eof())  
	{  
		//读取其中一行  
		char line[256] = {0};  
		in.getline(line, 255);  
		CString s = /*(CString)*/static_cast<CString>(line);  

		//空白行则跳过  
		if (s.IsEmpty())  
			continue;  
		//#为注释标记,跳过  
		if (s[0]=='#')  
			continue;  
		//如果读到字母则跳过
		if (s[0]>='a' && s[0]<='z')
			continue; 
		CStringArray* pRow = new CStringArray();  
		int i = 0;  
		CString token = s.Tokenize(_T(",\t"), i);  
		while (token!=_T(""))  
		{  
			pRow->Add(token);  
			token = s.Tokenize(_T(",\t"), i);  
		}  
		m_rows.Add(pRow);  
		lines++;  
	}  
	return lines;  
}  
예제 #5
0
bool CStartDlg::VerifyRange(CString csRange)
{
	CString csCorrectValues = _T("0123456789; -");

	if(csRange == _T(""))
		return false;

	for(int i = 0; i < csRange.GetLength(); i++)
	{
		if(csCorrectValues.Find(csRange.GetAt(i)) == (-1))
		{
			return false;
		}
	}

	CString csToken;
	int iCurrPos = 0;

	csToken = csRange.Tokenize(_T("; -"), iCurrPos);
	
	while(csToken != _T(""))
	{
		int val = _wtoi(csToken);
		if((val < 1) || (val > m_iSlideCount))
			return false;
		csToken = csRange.Tokenize(_T("; -"), iCurrPos);
	}

	return true;
}
예제 #6
0
CString GetJsonValue(CString str,CString key)
{
	str.Remove('{');
	str.Remove('}');
	int index=0;
	CString resToken=str.Tokenize(_T(","),index);
	while (resToken != _T(""))
	{
		int index1=0;
		CString resToken1=resToken.Tokenize(_T(":"),index1);
		int flag=0;
		while(resToken1!=_T(""))
		{
			if (flag)
			{
				return resToken1;
			}
			if (resToken1==key)
			{
				flag=1; 
			}
			resToken1=resToken.Tokenize(_T(":"),index1);
		}
		resToken=str.Tokenize(_T(","),index);
	}
	return _T("");
}
예제 #7
0
HTREEITEM CLeftView::CreateTreeNode(HTREEITEM root, LPCTSTR path)
{
	// 获取文件夹图标
	HTREEITEM ret = root;
	CString fullpath = path;
	CString currentPath;
	int curPost = 0;

	static LPCTSTR TOKEN = TEXT("\\");
	CString sep = fullpath.Tokenize(TOKEN, curPost);
	while(!sep.IsEmpty())
	{
		currentPath += sep;
		HTREEITEM fined = m_nodeMap[currentPath];
		if ( fined == NULL )
		{
			// 创建新节点
			ret = GetTreeCtrl().InsertItem(sep , m_iFolderCloseIcon, m_iFolderOpenIcon,ret, TVI_LAST);
			m_nodeMap[currentPath] = ret;
			m_keyMap[ret] = currentPath;
		}
		else
		{
			ret = fined;
		}

		currentPath += TEXT("\\");
		sep = fullpath.Tokenize(TOKEN, curPost);
	}

	return ret;
}
예제 #8
0
BOOL CPPgMessages::OnApply()
{

	thePrefs.msgonlyfriends = IsDlgButtonChecked(IDC_MSGONLYFRIENDS)!=0;
	thePrefs.msgsecure = IsDlgButtonChecked(IDC_MSGONLYSEC)!=0;
	thePrefs.m_bAdvancedSpamfilter = IsDlgButtonChecked(IDC_ADVSPAMFILTER)!=0;
	thePrefs.indicateratings = IsDlgButtonChecked(IDC_INDICATERATINGS)!=0;

	GetDlgItem(IDC_FILTER)->GetWindowText(thePrefs.messageFilter);

	CString strCommentFilters;
	GetDlgItem(IDC_COMMENTFILTER)->GetWindowText(strCommentFilters);
	strCommentFilters.MakeLower();
	CString strNewCommentFilters;
	int curPos = 0;
	CString strFilter(strCommentFilters.Tokenize(_T("|"), curPos));
	while (!strFilter.IsEmpty())
	{
		strFilter.Trim();
		if (!strNewCommentFilters.IsEmpty())
			strNewCommentFilters += _T('|');
		strNewCommentFilters += strFilter;
		strFilter = strCommentFilters.Tokenize(_T("|"), curPos);
	}
	thePrefs.commentFilter = strNewCommentFilters;
	if (thePrefs.commentFilter != strCommentFilters)
		SetDlgItemText(IDC_COMMENTFILTER, thePrefs.commentFilter);

	LoadSettings();
	SetModified(FALSE);
	return CPropertyPage::OnApply();
}
예제 #9
0
BOOL CSubtitleDlDlg::OnInitDialog()
{
    __super::OnInitDialog();

    m_status.Create(WS_CHILD | WS_VISIBLE | CCS_BOTTOM, CRect(0, 0, 0, 0), this, IDC_STATUSBAR);

    int n, curPos = 0;
    CArray<int> columnWidth;

    CString strColumnWidth = AfxGetApp()->GetProfileString(IDS_R_DLG_SUBTITLEDL, IDS_RS_DLG_SUBTITLEDL_COLWIDTH, _T(""));
    CString token = strColumnWidth.Tokenize(_T(","), curPos);
    while (!token.IsEmpty()) {
        if (_stscanf_s(token, L"%i", &n) == 1) {
            columnWidth.Add(n);
            token = strColumnWidth.Tokenize(_T(","), curPos);
        } else {
            throw 1;
        }
    }

    m_list.SetExtendedStyle(m_list.GetExtendedStyle()
                            | LVS_EX_DOUBLEBUFFER | LVS_EX_FULLROWSELECT
                            | LVS_EX_CHECKBOXES   | LVS_EX_LABELTIP);

    if (columnWidth.GetCount() != 5) {
        // default sizes
        columnWidth.RemoveAll();
        columnWidth.Add(290);
        columnWidth.Add(70);
        columnWidth.Add(50);
        columnWidth.Add(50);
        columnWidth.Add(270);
    }

    m_list.InsertColumn(COL_FILENAME, ResStr(IDS_SUBDL_DLG_FILENAME_COL), LVCFMT_LEFT, columnWidth[0]);
    m_list.InsertColumn(COL_LANGUAGE, ResStr(IDS_SUBDL_DLG_LANGUAGE_COL), LVCFMT_CENTER, columnWidth[1]);
    m_list.InsertColumn(COL_FORMAT, ResStr(IDS_SUBDL_DLG_FORMAT_COL), LVCFMT_CENTER, columnWidth[2]);
    m_list.InsertColumn(COL_DISC, ResStr(IDS_SUBDL_DLG_DISC_COL), LVCFMT_CENTER, columnWidth[3]);
    m_list.InsertColumn(COL_TITLES, ResStr(IDS_SUBDL_DLG_TITLES_COL), LVCFMT_LEFT, columnWidth[4]);

    AddAnchor(IDC_LIST1, TOP_LEFT, BOTTOM_RIGHT);
    AddAnchor(IDC_CHECK1, BOTTOM_LEFT);
    AddAnchor(IDOK, BOTTOM_RIGHT);
    AddAnchor(IDC_STATUSBAR, BOTTOM_LEFT, BOTTOM_RIGHT);

    const CSize s(420, 200);
    SetMinTrackSize(s);
    EnableSaveRestore(IDS_R_DLG_SUBTITLEDL);

    // start new worker thread to download the list of subtitles
    m_pTA = DEBUG_NEW THREADSTRUCT;
    m_pTA->url = m_url;
    m_pTA->hWND = GetSafeHwnd();

    SetStatus(ResStr(IDS_SUBDL_DLG_DOWNLOADING));
    AfxBeginThread(RunThread, static_cast<LPVOID>(m_pTA));

    return TRUE;
}
예제 #10
0
static void SplitCString( const CString& content, const CString& token, AcStringArray& cc )
{
    int curPos = 0;
    CString str = content.Tokenize( token, curPos );
    while ( str != _T( "" ) )
    {
        cc.append( str );
        str = content.Tokenize( token, curPos );
    };
}
예제 #11
0
void UTIL::splitString(const CString& strSrc, const CString& strElem, std::vector<CString>& vStrings)
{
	int nPos = 0;
	CString sToken = strSrc.Tokenize(strElem, nPos);
	while (sToken.GetLength() > 0)
	{
		vStrings.push_back(sToken);
		sToken = strSrc.Tokenize(strElem, nPos);
	}
}
예제 #12
0
void MusicUtils::SpliteCString(CString str,CArray<CString,CString&> &arrays,CString spstr)
{
	int index=0;
	CString resToken=str.Tokenize(spstr,index);
	while (resToken != _T(""))
	{
		arrays.Add(resToken);
		resToken=str.Tokenize(spstr,index);
	}
}
예제 #13
0
inline CString __AOCTM_BUILD(void)
{
	CString date =_T(__DATE__);
	int curPos = 0;
	int month = Renamer::ToMonth(date.Tokenize(_T(" "), curPos));
	int day = _ttoi(date.Tokenize(_T(" "), curPos));
	CString year = date.Tokenize(_T(" "), curPos).Right(2);
	date.Format(_T("%s%.2d%.2d"), year, month, day);
	return date;
}
예제 #14
0
int CStrUtil::TokenizeString(const CString & source,vector<CString> &vecStr,LPCTSTR delimiter)
{
	int at = 0;
	CString temp = source.Tokenize(delimiter,at);
	while(!temp.IsEmpty())
	{
		vecStr.push_back(temp);
		temp = source.Tokenize(delimiter,at);
	}
	return (int)vecStr.size();
}
예제 #15
0
void winReadKey(const char *name, KeyList& Keys)
{
  CString TxtKeyList = regQueryStringValue(name, "");
  int curPos= 0;

  CString resToken=TxtKeyList.Tokenize(",",curPos);
  while (resToken != "")
  {
	  Keys.AddTail(atoi(resToken));
	  resToken= TxtKeyList.Tokenize(",",curPos);
  };
}
void CSVNStatusListCtrl::ColumnManager::ParseUserPropSettings
    ( const CString& userPropList
    , const CString& shownUserProps)
{
    assert (userProps.empty());

    static CString delimiters (L" ");

    // parse list of visible user-props

    std::set<CString> visibles;

    int pos = 0;
    CString name = shownUserProps.Tokenize (delimiters, pos);
    while (!name.IsEmpty())
    {
        visibles.insert (name);
        name = shownUserProps.Tokenize (delimiters, pos);
    }

    // create list of all user-props

    pos = 0;
    name = userPropList.Tokenize (delimiters, pos);
    while (!name.IsEmpty())
    {
        bool visible = visibles.find (name) != visibles.end();

        UserProp newEntry;
        newEntry.name = name;
        newEntry.width = 0;

        userProps.push_back (newEntry);

        // auto-create columns for visible user-props
        // (others may be added later)

        if (visible)
        {
            ColumnInfo newColumn;
            newColumn.width = 0;
            newColumn.visible = true;
            newColumn.relevant = true;
            newColumn.index = static_cast<int>(userProps.size())
                            + SVNSLC_USERPROPCOLOFFSET - 1;

            columns.push_back (newColumn);
        }

        name = userPropList.Tokenize (delimiters, pos);
    }
}
예제 #17
0
void CPyScriptAutoConfigDlg::DeconstructConverterSpec(const CString& strScriptPathAndArgs, CString& strScriptSpec, CString& strFuncName, CString& strAddlParams)
{
	int nIndex = 0;
	strScriptSpec = strScriptPathAndArgs.Tokenize(strPyScriptDelimiter, nIndex);
	if( !strScriptSpec.IsEmpty() )
	{
		strFuncName = strScriptPathAndArgs.Tokenize(strPyScriptDelimiter, nIndex);
		if( strFuncName.IsEmpty() )
			strFuncName = clpszPyScriptDefFuncName;
		else if( nIndex != -1 )
			strAddlParams = strScriptPathAndArgs.Right(strScriptPathAndArgs.GetLength() - nIndex);
	}
}
예제 #18
0
inline COLORREF StringToCOLORREF( const string str )
{
	int r = 0, g = 0, b = 0;
	CString CStr = str.c_str();
	int pos = 0;
	CString resToken;
	r = atoi( CStr.Tokenize( ",", pos ) );
	g = atoi( CStr.Tokenize( ",", pos ) );
	b = atoi( CStr.Tokenize( ",", pos ) );

	COLORREF ret = RGB( r, g, b );
	return ret;
}
예제 #19
0
int CTGitPathList::ParserFromLsFile(BYTE_VECTOR &out,bool /*staged*/)
{
	int pos=0;
	CString one;
	CTGitPath path;
	CString part;
	this->Clear();

	while (pos >= 0 && pos < (int)out.size())
	{
		one.Empty();
		path.Reset();

		CGit::StringAppend(&one, &out[pos], CP_UTF8);
		int tabstart=0;
		// m_Action is never used and propably never worked (needs to be set after path.SetFromGit)
		// also dropped LOGACTIONS_CACHE for 'H'
		// path.m_Action=path.ParserAction(out[pos]);
		one.Tokenize(_T("\t"),tabstart);

		if(tabstart>=0)
			path.SetFromGit(one.Right(one.GetLength()-tabstart));
		else
			return -1;

		tabstart=0;

		part=one.Tokenize(_T(" "),tabstart); //Tag
		if (tabstart < 0)
			return -1;

		part=one.Tokenize(_T(" "),tabstart); //Mode
		if (tabstart < 0)
			return -1;

		part=one.Tokenize(_T(" "),tabstart); //Hash
		if (tabstart < 0)
			return -1;

		part=one.Tokenize(_T("\t"),tabstart); //Stage
		if (tabstart < 0)
			return -1;

		path.m_Stage=_ttol(part);

		this->AddPath(path);

		pos=out.findNextString(pos);
	}
	return 0;
}
예제 #20
0
/*************************************************
Function:   SplitCString
Desc:
Input:
Return:		SUCCESS 成功
            FAIL 失败
**************************************************/
vector<CString> CDialogSetting::SplitCString(CString strSource, CString ch)
{
    vector<CString> vecString;
    int iPos = 0;
    CString strTmp;
    strSource.ReleaseBuffer();
    strTmp = strSource.Tokenize(ch,iPos);
    while(strTmp.Trim() != _T(""))
    {
        vecString.push_back(strTmp);
        strTmp = strSource.Tokenize(ch,iPos);
    }
    return vecString;
}
예제 #21
0
bool parseHTTPResponse(const CString& response, CString& result)
{
	int pos = 0;

	CString status = response.Tokenize(_T("\r\n"), pos);

	result = response;
	result.Delete(0, pos);

	pos = 0;
	status.Tokenize(_T(" "), pos);
	status = status.Tokenize(_T(" "), pos);
	if (status.IsEmpty() || status[0]!='2') return false;
	return true;
}
예제 #22
0
void AddPath( CStringList& strrgPathList, const CString& strIncludePath )
{
	CString strPath;
	int curPos = 0;

	strPath = strIncludePath.Tokenize(_T(";"), curPos );

	while( ! strPath.IsEmpty() )
	{
		strPath.TrimLeft();
		strPath.TrimRight();
		strrgPathList.AddTail( strPath );
		strPath = strIncludePath.Tokenize(_T(";"), curPos );
	}
}
	void LoadStringArray(CStringArray& array, UINT nID)
	{
		CString tmp;
		VERIFY(tmp.LoadString(nID));

		array.RemoveAll();

		int pos = 0;
		CString item = tmp.Tokenize(_T("\r\n\t,;|"), pos);
		while (!item.IsEmpty())
		{
			array.Add(item);
			item = tmp.Tokenize(_T("\r\n\t,;|"), pos);
		}
	}
예제 #24
0
CStringVector SplitString( const CString& strString, LPCTSTR szSplitter )
{
    CStringVector arrStrings;

    int curPos = 0;
    CString resToken = strString.Tokenize(szSplitter, curPos);

    while (resToken != _T(""))
    {
        arrStrings.push_back(resToken);
        resToken = strString.Tokenize(szSplitter, curPos);
    };     

    return arrStrings;
}
예제 #25
0
파일: GFN.cpp 프로젝트: aracnoz/xy-VSFilter
 bool init(const CString& load_ext_list)
 {
     int extsubnum = countof(G_EXTTYPESTR);
     for (int i=0;i<extsubnum;i++)
     {
         ext_map[CString(G_EXTTYPESTR[i])] = -1;
     }
     for (int i=0, start=0;true;i++)
     {
         CString ext = load_ext_list.Tokenize(_T(";"), start);
         if (ext!="")
         {
             int tmp = 0;
             if (ext_map.Lookup(ext, tmp))
             {
                 ext_map[ext] = i;
             }
         }
         else
         {
             break;
         }
     }
     return true;
 }
예제 #26
0
static void splitTags(CString& tags, CStringList& result)
{
	if(tags == "") {
		result.AddTail("*");
		return;
	}

	CString resToken;
	int curpos = 0;
	tags.Remove(' ');
	resToken = tags.Tokenize(_T(","), curpos);
	while(resToken != "") {
		result.AddTail(resToken);
		resToken = tags.Tokenize(_T(","), curpos);
	}
}
예제 #27
0
inline CIntArray StringToCIntArray( const string &str )
{
	CIntArray ret;
	CString cstr = str.c_str();
	int pos = 0;

	CString resToken;
	resToken = cstr.Tokenize( ",", pos);
	while ( resToken != "" )
	{
		ret.push_back( atoi( resToken.GetBuffer() ) );
		resToken = cstr.Tokenize( ",", pos );
	};

	return ret;
}
예제 #28
0
CString CGit::GetSymbolicRef(const wchar_t* symbolicRefName, bool bStripRefsHeads)
{
	CString refName;
	if(this->m_IsUseGitDLL)
	{
		unsigned char sha1[20];
		int flag;

		CAutoLocker lock(g_Git.m_critGitDllSec);
		const char *refs_heads_master = git_resolve_ref(CUnicodeUtils::GetUTF8(CString(symbolicRefName)), sha1, 0, &flag);
		if(refs_heads_master && (flag&REF_ISSYMREF))
		{
			StringAppend(&refName,(BYTE*)refs_heads_master);
			if(bStripRefsHeads)
				refName = StripRefName(refName);
		}

	}
	else
	{
		CString cmd;
		cmd.Format(L"git symbolic-ref %s", symbolicRefName);
		if (Run(cmd, &refName, NULL, CP_UTF8) != 0)
			return CString();//Error
		int iStart = 0;
		refName = refName.Tokenize(L"\n", iStart);
		if(bStripRefsHeads)
			refName = StripRefName(refName);
	}
	return refName;
}
예제 #29
0
void CSelectUnitsDlg::OnCbnSelchangeComboBook()
{
	m_nSelectedBookID = m_cboBook.GetItemData(m_cboBook.GetCurSel());
	CString str;
	str.Format(_T("BOOKID=%d"), m_nSelectedBookID);
	m_rsBook.FindFirst(str);

	m_cboPartFrom.ResetContent();
	m_cboPartTo.ResetContent();
	CString strParts = m_rsBook.GetFieldValueAsString(_T("PARTS"));
	for(int curPos = 0;;){
		CString str = strParts.Tokenize(_T(" "), curPos);
		if(str.IsEmpty()) break;
		m_cboPartFrom.AddString(str);
		m_cboPartTo.AddString(str);
	}

	int nNumUnits = m_rsBook.GetFieldValueAsInt(_T("UNITSINBOOK"));
	str.Format(_T("(%d in all)"), nNumUnits);
	m_stcUnitInAllFrom.SetWindowText(str);
	m_stcUnitInAllTo.SetWindowText(str);
	m_spnUnitFrom.SetRange32(1, nNumUnits);
	m_spnUnitTo.SetRange32(1, nNumUnits);
	int nUnitFrom = m_rsBook.GetFieldValueAsInt(_T("UNITFROM"));
	int nPartFrom = m_rsBook.GetFieldValueAsInt(_T("PARTFROM"));
	int nUnitTo = m_rsBook.GetFieldValueAsInt(_T("UNITTO"));
	int nPartTo = m_rsBook.GetFieldValueAsInt(_T("PARTTO"));
	m_spnUnitFrom.SetPos32(nUnitFrom);
	m_cboPartFrom.SetCurSel(nPartFrom - 1);
	m_spnUnitTo.SetPos32(nUnitTo);
	m_cboPartTo.SetCurSel(nPartTo - 1);
	m_chkTo.SetCheck(nUnitFrom == nUnitTo && nPartFrom == nPartTo ? BST_UNCHECKED : BST_CHECKED);
	OnBnClickedCheckTo();
}
예제 #30
0
파일: INIsoc.cpp 프로젝트: promanz/tuisong
//截取Key
void CINIsoc::CutString(char* fid, int len, ATF_MAP& f_map)
{
	char *pline_head = fid;
	int readtotal = 0;
	for(int i=0;i<len;i++)
	{
		if(fid[i] == 0x0)
		{
			CString str ;
			str.Format("%s",pline_head);
			//读取key对应的数据
			str.Trim();
			if( !str.IsEmpty() )
			{
				CString sKey,sVal;
				int curpos = 0;
				sKey = str.Tokenize("=",curpos);
				sVal = str.Right(str.GetLength()-curpos);
				sKey.MakeUpper(); //统一大写 2011.10.17
				sVal.Trim();
				f_map.insert( ATF_PAIRMAP( sKey, sVal ) );
			}
			if(fid[i+1] == 0x0)
				break;//字段结束;
			pline_head = fid+i+1;
		}
	}
}