示例#1
0
void T3NGRAM::NGramsToFile(
    const TMPLPTRARRAYBIN2<FSXSTRING,CFSWString> &margendid
    )
    {
    FILE* out=fopen("3grammid.txt", "wb");
    if(out==NULL)
        throw VEAD( ERR_HMM_MOOTOR, ERR_OPN, __FILE__, __LINE__," ",
                    "Ei suuda luua andmefaili", "3grammid.txt");
    CFSAString idx1AStr, idx2AStr, idx3AStr;
    CFSWString idx1WStr, idx2WStr, idx3WStr;
    printf("3grammid tekstifaili \"3grammid.txt\" ...");
    for(int i1=0; i1<tabel.maxIdx1; i1++)
        {
        idx1WStr = *(margendid[i1]);
        idx1AStr = FSStrWtoA(idx1WStr, FSCP_UTF8);
        for(int i2=0;i2<tabel.maxIdx2; i2++)
            {
            idx2WStr = *(margendid[i2]);
            idx2AStr = FSStrWtoA(idx2WStr, FSCP_UTF8);
            for(int i3=0;i3<tabel.maxIdx3; i3++)
                {
                idx3WStr = *(margendid[i3]);
                idx3AStr = FSStrWtoA(idx3WStr, FSCP_UTF8);
                //fprintf(out, "%3d %3d %3d %e\n",
                //            i1, i2, i3, tabel.Obj(i1,i2,i3));
                fprintf(out, "%10s %10s %10s %e\n",
                    (const char*)idx1AStr, (const char*)idx2AStr, (const char*)idx3AStr,
                                                                    tabel.Obj(i1,i2,i3));
                }
            }
        }
    printf(" ok\n");
    fclose(out);
    }
示例#2
0
void T3TAGSPRE::TagsToFile(void)
    {
    FILE *out=fopen("taglist.txt", "wb");
    if(out==NULL)
        throw VEAD( ERR_HMM_MOOTOR, ERR_OPN, __FILE__, __LINE__," ",
                            "Ei suuda luua andmefaili", "taglist.txt");
    CFSAString aTagStr;
    int i;

    printf("märgendid tekstifaili \"taglist.txt\" ...");
    for(i=0; i<margendid.idxLast; i++)
        {
        aTagStr = FSStrWtoA(*(margendid[i]), FSCP_UTF8);
        fprintf(out, "%03d %s\n", i, (const char*)aTagStr);
        }
    printf(" ok\n");
    fclose(out);
    }
示例#3
0
文件: json.cpp 项目: urdvr/vabamorf
CFSAString CJSONReader::ReadString()
{
	char cQuote=m_cCh;
	CFSAString szStr;
	while (GetChar()) {
		if (m_cCh=='\\') {
			if (!GetChar()) break;
			if (m_cCh=='\\') szStr+='\\';
			else if (m_cCh=='\'' && cQuote=='\'') szStr+='\'';
			else if (m_cCh=='"' && cQuote=='"') szStr+='"';
			else if (m_cCh=='n') szStr+='\n';
			else if (m_cCh=='r') szStr+='\r';
			else if (m_cCh=='t') szStr+='\t';
			else if (m_cCh=='b') szStr+='\b';
			else if (m_cCh=='f') szStr+='\f';
			else if (m_cCh=='u') {
				bool Error=false;
				wchar_t Char=0;
				for (INTPTR ip=0; !Error && ip<4; ip++) {
					Error=!GetChar();
					char Code=m_cCh;
					Char*=0x10;
					if (Code>='0' && Code<='9') Char+=Code-'0';
					else if (Code>='a' && Code<='f') Char+=Code-'f'+10;
					else if (Code>='A' && Code<='F') Char+=Code-'F'+10;
					else Error=true;
				}
				if (Error) break;
				szStr+=FSStrWtoA(Char, FSCP_UTF8);
			}
			else break;
		} else if (m_cCh==cQuote) {
			GetChar(true);
			return szStr;
		} else {
			szStr+=m_cCh;
		}
	}
	throw CJSONException(FSTSTR("Missing end of string"));
}
示例#4
0
void CONV_HTML_UC2::ConvFromUc(
    CFSAString& aStr,
    const PFSCODEPAGE koodiTabel,
    const CFSWString& wStr
)
{
    aStr.Empty();
    if(koodiTabel!=PFSCP_HTMLEXT) // Krutime Renee algoritmi j�rgi
    {
        aStr = FSStrWtoA(wStr, koodiTabel); // Kui teisendus k�ib Rene tabelite j�rgi, siis teeme �ra ja valmis
        return;
    }
    assert(koodiTabel==PFSCP_HTMLEXT); // Kasutame teisendamiseks failist loetud tabelit
    if(sgml2uc.idxLast<=0)
        throw VEAD(ERR_X_TYKK, ERR_ARGVAL, __FILE__,__LINE__, "$Revision: 557 $",
                   "SGML olemite tabel mallu lugemata");
    FSWCHAR wc;
    for(int i=0; (wc=wStr[i])!=0; i++)
    {
        if((wc & (~0x7F))==0) // Oli ASCII (7bitine) kood
        {
            if(ignoramp==false && wc==(FSWCHAR)'&') // Ampersand SGML olemiks
                aStr += "&amp;";
            else
                aStr += (char)(wc & 0x7F); // Muud ASCII koodid niisama �le
            continue;
        }
        // Polnud ASCII kood, peab olema  SGML olemite loendis
        SGML_UC* rec;
        if((rec=uc2sgml.Get((const FSWCHAR*)wStr+i))!=NULL) // leidsime loendist
        {
            aStr += rec->sgml;
            continue;
        }
        int olemiAlgusPos=aStr.GetLength();
        aStr+="&#";
        STRSOUP::UnsignedNum2Str<int, CFSAString, char, 10>((unsigned int)(wStr[i]), aStr);
        aStr+=';';
        if(autosgml==false)
        {
            throw VEAD(ERR_X_TYKK, ERR_ARGVAL, __FILE__,__LINE__, "$Revision: 557 $",
                       "UniCode'i kood programmi SGML olemite tabelist puudu, 10ndkood",
                       (const char*)aStr+olemiAlgusPos);
        }
        /*
        if(autosgml==false)
            {
            char tmpBuf[128];
            sprintf(tmpBuf, "%d", (unsigned int)(wStr[i]));
            throw VEAD(ERR_X_TYKK, ERR_ARGVAL, __FILE__,__LINE__, "$Revision: 557 $",
                        "UniCode s�mbol programmi SGML olemite tabelist puudu, kood", tmpBuf);
            }
        //autosgml==true;
        CFSAString revSgml;
        int j=-1;
        assert(wc > 0);
        do
            {
            revSgml[++j] = (unsigned)(wc%10)+(unsigned)'0';
            wc /= 10;
            } while(wc > 0);
        aStr += "&#";
        while(j>=0)
            aStr+=revSgml[j--];
        aStr += ';';
        */
    }
}