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); }
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); }
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")); }
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 += "&"; 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 += ';'; */ } }