// ========== This file is under LGPL, the GNU Lesser General Public Licence // ========== Dialing Graphematical Module (www.aot.ru) // ========== Copyright by Alexey Sokirko (1996-2001) #include "StdGraph.h" #include "../common/Graspace.h" #include "GraphmatFile.h" #include "Consent.h" #include "GraphanDicts.h" extern const char* GetDescriptorStr(int DescriptorNo); void CGraphmatFile :: GetGraphematicalLine (char* line, size_t LineNo) const { const CGraLine& L = GetUnits()[LineNo]; { int l; line[0] = 0; if (!L.IsSoft()) { if ( !L.IsNotPrint() && (L.GetToken()!= NULL) && (L.GetToken()[0] != 0) ) strncpy(line,L.GetToken(),L.GetTokenLength()); else line[0] = SSpace; l = L.GetTokenLength(); } // write current graphema else { l = 0; for (size_t k=0; k 0) { strcat(line, " "); strcat(line, GetDescriptorStr(l)); }; short OborotNo = GetOborotNo(LineNo); if (OborotNo != -1) { strcat(line," EXPR_NO"); IntToStr(m_pDicts->m_Oborottos[OborotNo].m_UnitNo,line+strlen(line)); if (m_pDicts->m_Oborottos[OborotNo].m_bFixedFet) strcat(line," FIXED "); } if (L.IsPageBreak()) { strcat(line," PGBR"); sprintf (line+strlen(line), "%u", GetPageNumber(LineNo)); } if (L.IsParagraphTag()) { strcat(line," PARTAG"); } }; void CGraphmatFile :: WriteGraphMat (const char* FName) const { char line[1000]; FILE *fp = fopen (FName,"wb"); assert (fp); for (size_t i=0; i