コード例 #1
0
ファイル: C_desc.cpp プロジェクト: dkrotx/gogo_lemmatizer
bool CGraphmatFile::IsKey(size_t LB, size_t HB, size_t& GraLast) const
{
  if (GetUnits()[LB].GetToken() == 0) return false;
  int ch1 =  (unsigned char)GetUnits()[LB].GetToken()[0];
  int ch2 =  (unsigned char)ReverseChar((unsigned char)GetUnits()[LB].GetToken()[0], m_Language);
  GraLast = LB+1;
  if (ispunct (ch1)) return false;  

  long i=0;
  for (; i < m_pDicts->m_Keys.size(); i++)
  {
    const char* title =  m_pDicts->m_Keys[i].c_str();
    if (
	        (    (ch1 == (unsigned char)title[0])
              || (ch2 == (unsigned char)title[0])
            )
	     && FindKeySequence(title,LB, HB, GraLast)
	   )
		break;
  }

  if (i < m_pDicts->m_Keys.size())
	  return true;
 if  (IsOneAlpha(LB))
 {
	  
	   GraLast = LB+1;
	   return true;
 };
  return  false;
};
コード例 #2
0
ファイル: C_desc.cpp プロジェクト: dkrotx/gogo_lemmatizer
//ctrl-alt-del
//control-PgUp
//control-Num Lock
void CGraphmatFile::DealModifierKey(size_t LB, size_t  HB)
{
  size_t SaveStart = LB;
  if (LB+3 > HB) return ;
  if (!HasDescr (LB+1, OHyp)) return ;

  // ищем в модификаторах
  if (!GetUnits()[LB].IsKeyModifier()) return;
  LB += 2;
  if  (    (LB+3 <= HB)
	    && HasDescr (LB+1, OHyp)
		&& GetUnits()[LB].IsKeyModifier()
	  )
    LB+=2;


  // ищем в клавишах
  size_t GraLast;
  if (!IsKey(LB, HB, GraLast)) return;

  if (!HasGrouped(SaveStart,GraLast) )
  {
     SetDes (SaveStart, OKey1);
     SetDes (GraLast-1, OKey2);
     SetState(SaveStart,GraLast,stGrouped);

  }
    
};
コード例 #3
0
ファイル: C_desc.cpp プロジェクト: dkrotx/gogo_lemmatizer
int CGraphmatFile::DealInternetAddresses (size_t StartPos, size_t  EndPos)
{
    size_t  i = StartPos;
    if (!IsProtocolAbbr(i)) return false;
    i++;
    if (i == EndPos) return false;
	if (    (GetUnits()[i].GetTokenLength() != 1) 
	   || (((unsigned char)GetUnits()[i].GetToken()[0]) != ':') )
        return false;


    for (; 
	        (i<EndPos) 
		 && (    HasDescr (i, OPun)
			  || HasDescr (i, OLLE) 
			  || HasDescr (i, ODg)) ; 
		 i++);

   if (HasGrouped(StartPos,i)) return false;

    SetDes (StartPos, OElectAddr1);
    SetDes (i-1, OElectAddr2);
    SetState(StartPos,i,stGrouped);

    return true;
};
コード例 #4
0
ファイル: C_desc.cpp プロジェクト: dkrotx/gogo_lemmatizer
// электронные адреса типа [email protected] 
int CGraphmatFile::DealEmailAddresses (size_t StartPos, size_t EndPos)
{
  size_t i = StartPos;

  if (    (GetUnits()[i].GetTokenLength() != 1) 
	   || (((unsigned char)GetUnits()[i].GetToken()[0]) != '@') )
        return false;

  if (i  == 0) return false;

  int nh;
  for (nh=i-1; nh>=0; nh--)
	  if (!CanBeElectronicAddressCompound (nh))
		  break;
  nh++; 

  if (nh == i) return false;


  int nt;
  for (nt = i+1; nt<EndPos; nt++)
  	  if (!CanBeElectronicAddressCompound (nt))
		  break;
 
  if (nt == i + 1) return false;

  if (HasGrouped(StartPos,nt)) return false;

  SetDes (nh, OElectAddr1);
  SetDes (nt-1, OElectAddr2);
  SetState(StartPos,nt,stGrouped);

  return true;
};
コード例 #5
0
ファイル: TimeHelper.cpp プロジェクト: Fox-Heracles/TodoList
CString CTimeHelper::FormatTimeHMS(double dTime, int nUnits, int nLeftOverUnits, 
								   double dLeftOverMultiplier, BOOL bDecPlaces)
{
	// sanity check
	if (!IsValidUnit(nUnits) || !IsValidUnit(nLeftOverUnits))
	{	
		ASSERT(0);
		return _T("");
	}

	CString sTime;
	
	if (bDecPlaces)
	{
		double dLeftOver = ((dTime - (int)dTime) * dLeftOverMultiplier + FUDGE);

		// omit second element if zero
		if (((int)dLeftOver) == 0)
		{
			sTime.Format(_T("%d%c"), (int)dTime, GetUnits(nUnits));
		}
		else
		{
			sTime.Format(_T("%d%c%d%c"), (int)dTime, GetUnits(nUnits), 
						(int)dLeftOver, GetUnits(nLeftOverUnits));
		}
	}
	else
	{
		sTime.Format(_T("%d%c"), (int)(dTime + 0.5), GetUnits(nUnits));
	}
	
	return sTime;
}
コード例 #6
0
ファイル: C_desc.cpp プロジェクト: dkrotx/gogo_lemmatizer
int CGraphmatFile::CountSpaces  (size_t LB, size_t HB)
{
  int count = 0;
  for (size_t i = LB; i<=HB; i++)
   if (GetUnits()[i].IsSpace ())
    count += GetUnits()[i].GetScreenLength();
  return count;
}
コード例 #7
0
ファイル: C_desc.cpp プロジェクト: dkrotx/gogo_lemmatizer
// электронные адреса типа http:\\www.medialingua.ru 
// ftp:\\medialingua.ru 
bool CGraphmatFile::IsProtocolAbbr (size_t i)
{
return     (     (GetUnits()[i].GetTokenLength() == 4)
              && !strncmp(GetUppercaseToken(i), "HTTP", 4) 
           )||
           (     (GetUnits()[i].GetTokenLength() == 3)
              && !strncmp(GetUppercaseToken(i), "FTP", 3) 
           );
};
コード例 #8
0
// Convert a CPoint to a Unit CString
CString COption::PointToUnit(CDPoint a)
{
 	CString r;

  	double Scale = GetUnits()==0 ? (float)PIXELSPERMM : ((float)PIXELSPERMM * 25.4f);
	double sx = a.x / Scale;
	double sy = a.y / Scale;
  	r.Format(_T("%.1lf,%.1lf%s"),sx,sy,GetUnits()==0 ? _T("mm") : _T("\""));

	return r;
}
コード例 #9
0
ファイル: C_desc.cpp プロジェクト: dkrotx/gogo_lemmatizer
bool CGraphmatFile::DealAsteriskBullet (size_t LB, size_t HB)
{
	vector<CAsteriskHyp> Hyps;
	size_t LineNo = 0;
	size_t i;

	for (i = LB; i< HB; i++)
	{
		if (GetUnits()[i].IsEOLN()) LineNo++;
	
		// проверяем, является ли данная графема звездочкой
		if (!GetUnits()[i].IsAsterisk()) continue;

		// удостоверяемся, что данная графема  не вошла  в графематические группы
		if (GetUnits()[i].IsGrouped() || HasDescr(i,OBullet)) continue;

		size_t nh = BSpace(i-1);

		size_t nt = PSpace(i+1,HB);

		// перед перечислителя должен стоять конец строки 
		if ((nh > 0) && !GetUnits()[nh].IsEOLN()) continue;

		// проверяем, стоит ли после перечислителя знак препинания, если
		// стоит, то это не пункт перечисления
		if (nt == HB) continue; 
		if (HasDescr (nt,OPun)) continue;

		CAsteriskHyp A;
		A.LineNo =  LineNo;
		A.UnitNo = i;
		Hyps.push_back(A);
	};

	for (i=0; i<Hyps.size(); i++)
		if (	(i+1 == Hyps.size()) 
			||	(i == 0) 
			||	(		(i+1 < Hyps.size())
					&&	(Hyps[i+1].LineNo <  Hyps[i].LineNo + MaxBulletSectionSize)
				)
			||	(		(i > 0)
					&&	(Hyps[i-1].LineNo + MaxBulletSectionSize <  Hyps[i].LineNo)
				)
			)
		{   
			SetDes (Hyps[i].UnitNo,OBullet);

			if (!HasDescr (Hyps[i].UnitNo,OPar))
				SetDes(Hyps[i].UnitNo,OPar); 
		};

	return true; 

}
コード例 #10
0
ファイル: C_desc.cpp プロジェクト: dkrotx/gogo_lemmatizer
// РЕ1 - РЕ2
int CGraphmatFile::DealReferences (size_t i,size_t HB)
 {
   // ч. 1 ст. 2
   // п. 1 ст. 2 
   // п. 1.1 ст. 2

   bool is_part_string =  (GetUnits()[i].GetTokenLength() == 1)  &&  (GetUnits()[i].GetToken()[0] == 'ч');
   bool is_bullet_string =  (GetUnits()[i].GetTokenLength() == 1)  &&  (GetUnits()[i].GetToken()[0] == 'п');

   if (!is_part_string && !is_bullet_string) return false;

   size_t nt = i+1;
   if (nt == HB) return false;
   if ( !IsOneFullStop(nt)) return false;
   nt ++;
   if (nt == HB) return false;

   size_t k = PSpace (nt,HB);

   if ((k == HB)  || ((k - nt) > 10)) return false; 

   nt = FSpace (k,HB);
   nt = PSpace (nt,HB);

   if ( (k == HB) || ((nt -k) > 20)) return false;

   if	(		(GetUnits()[nt].GetTokenLength() != 2) 
			||	strncmp (GetUppercaseToken(nt), "ст",2)
		) 
	  return false;

   nt++;

   if (nt == HB) return false;

   if ( !IsOneFullStop(nt)) return false;

   nt++;

   if (nt == HB) return false;

   nt = PSpace (nt,HB);

   if (nt == HB) return false;

   SetDes (i,ORef1);
   SetDes (nt, ORef2);
   SetState(i,nt+1,stGrouped);

   return true;    
}
コード例 #11
0
ファイル: C_desc.cpp プロジェクト: dkrotx/gogo_lemmatizer
void CGraphmatFile::DealGermanDividedCompounds(size_t LB, size_t  HB)
{
	size_t i = LB;
	bool bFound = false;
	while (i < HB)
	{
		if (!HasDescr(i, OLLE)) break;
		i++;
		if (i == HB) break;

		//  no space between word and hyphen
		if (GetUnits()[i-1].GetInputOffset()+ GetUnits()[i-1].GetTokenLength()  != GetUnits()[i].GetInputOffset())
			break;

		if (!HasDescr(i, OHyp)) break;
		i = PSoft(i+1, HB);
		if (i == HB) break;
	
		
		if (	(		!strncmp(GetUppercaseToken(i), "UND", 3)
					&&	(GetUnits()[i].GetTokenLength() == 3)
				)
				|| (		!strncmp(GetUppercaseToken(i), "ODER", 4)
					&&	(GetUnits()[i].GetTokenLength() == 4)
				)
			)
		{
			i = PSoft(i+1, HB);
			if (i == HB) break;

			for (long k=LB; k <= i; k++)
				if (HasDescr(k, OGerDivComp2)) 
					return;

			SetDes (LB, OGerDivComp1);
			SetDes (i, OGerDivComp2);
			SetState(LB,i+1,stGrouped);
			return;
		};
				
				

		if (!IsOneChar(i, (BYTE)',')) break;
		i = PSoft(i+1, HB);
		if (i == HB) break;
	};

};
コード例 #12
0
ファイル: C_desc.cpp プロジェクト: dkrotx/gogo_lemmatizer
void CGraphmatFile::DealKeySequence(size_t LB, size_t  HB)
{
	if (!HasDescr(LB, OKey1)) return;

	long i=LB;
	for (;  i< HB;)
	{
		if (!HasDescr(i, OKey1)) break;
		for (; i < HB; i++)
		   if (HasDescr(i, OKey2)) break;
        if (i == HB) break;
		i++;
		if (i == HB) break;
 	    if (GetUnits()[i].IsSoft())   i++;
	};
	if ((i ==  HB) || !HasDescr(i, OKey2))
	  i = BSoft(i-1);
	if (i-LB < 2)  return;
  

	for (long k=LB; k <= i; k++)
	{
		DeleteDescr(k,OKey1);
		DeleteDescr(k,OKey2);
	};

     SetDes (LB, OKey1);
     SetDes (i, OKey2);
     SetState(LB,i+1,stGrouped);
};
コード例 #13
0
ファイル: Ruler.cpp プロジェクト: Blokkendoos/heekscad
void HRuler::glCommands(bool select, bool marked, bool no_color)
{
	double m[16];
	extract_transposed(m_trsf, m);
	glPushMatrix();
	glMultMatrixd(m);

	if(m_gl_list)
	{
		glCallList(m_gl_list);
	}
	else{
		m_gl_list = glGenLists(1);
		glNewList(m_gl_list, GL_COMPILE_AND_EXECUTE);

		// draw a filled white rectangle
		glDisable(GL_POLYGON_OFFSET_FILL);
		glPolygonOffset(1.0, 0.0);
		glColor4ub(255, 255, 255, 120); // white
		wxGetApp().EnableBlend();
		glDepthMask(0);
		gp_Pnt point[4];
		GetFourCorners(point);
		glBegin(GL_TRIANGLES);
		glVertex3d(point[0].X(), point[0].Y(), point[0].Z());
		glVertex3d(point[1].X(), point[1].Y(), point[1].Z());
		glVertex3d(point[2].X(), point[2].Y(), point[2].Z());
		glVertex3d(point[0].X(), point[0].Y(), point[0].Z());
		glVertex3d(point[2].X(), point[2].Y(), point[2].Z());
		glVertex3d(point[3].X(), point[3].Y(), point[3].Z());
		glEnd();
		wxGetApp().DisableBlend();
		glDepthMask(1);

		// draw a black rectangle border
		glColor4ub(0, 0, 0, 255); // black

		glBegin(GL_LINE_STRIP);
		glVertex3d(point[0].X(), point[0].Y(), point[0].Z());
		glVertex3d(point[1].X(), point[1].Y(), point[1].Z());
		glVertex3d(point[2].X(), point[2].Y(), point[2].Z());
		glVertex3d(point[3].X(), point[3].Y(), point[3].Z());
		glVertex3d(point[0].X(), point[0].Y(), point[0].Z());
		glEnd();

		// draw the marks ( with their numbers )
		std::list<RulerMark> marks;
		CalculateMarks(marks);
		for(std::list<RulerMark>::iterator It = marks.begin(); It != marks.end(); It++)
		{
			RulerMark& mark = *It;
			mark.glCommands(GetUnits());
		}
		glEnable(GL_POLYGON_OFFSET_FILL);

		glEndList();
	}

	glPopMatrix();
}
コード例 #14
0
ファイル: ComDictionary.cpp プロジェクト: deNULL/seman
STDMETHODIMP CComDictionary::GetUnitStartPos(WORD UnitNo, LONG *result)
{
	// TODO: Add your implementation code here
	*result = GetUnits()[UnitNo].m_StartCortegeNo; 

	return S_OK;
}
コード例 #15
0
ファイル: C_desc.cpp プロジェクト: dkrotx/gogo_lemmatizer
// электронные адреса типа www.medialingua.ru 
// ftp.medialingua.ru 
bool CGraphmatFile::DealAbbrigedInternetAddresses(size_t  StartPos, size_t EndPos)
{
 size_t  i = StartPos;
 if (     (GetUnits()[i].GetTokenLength() != 3)
	   || (   strncmp(GetUppercaseToken(i), "FTP", 3) 
           && strncmp(GetUppercaseToken(i), "WWW", 3)
          ) 
    )
 return false;   

 i++;
 if (i == EndPos) return false;
 if (!IsOneFullStop(i)) return false;
 for (; (i<EndPos) && 
	    (    HasDescr (i, OPun)
		  || HasDescr (i, OLLE)
		  || HasDescr (i, ODg)
		  || HasDescr (i, ODgCh)
		);
       i++);

 if (HasGrouped(StartPos,i)) return false;
 SetDes (StartPos, OElectAddr1);
 SetDes (i-1, OElectAddr2);
 SetState(StartPos,i,stGrouped);

 return true;
};
コード例 #16
0
ファイル: C_desc.cpp プロジェクト: dkrotx/gogo_lemmatizer
void CGraphmatFile::DealNames (size_t LB, size_t  HB)
{
 for (size_t i = LB; i<HB; i++)
  {
   if (!flEOS && HasDescr(i,OUpLw) && !HasDescr(i,ONam)) SetDes (i,ONam);
   if(!GetUnits()[i].IsSoft()) flEOS = HasDescr(i,OEOS);
  }
}
コード例 #17
0
ファイル: BattleObjects.cpp プロジェクト: openwar/openwar
bool BattleObjects::TeamHasAbandondedBattle(int team) const
{
	for (BattleObjects::Unit* unit : GetUnits())
		if (unit->commander->GetTeam() == team && !unit->commander->HasAbandonedBattle())
			return false;

	return true;
}
コード例 #18
0
ファイル: TowerDefenseInstance.cpp プロジェクト: Adeer/Patchs
void TowerDefenseInstanceScript::TowerDefenseMapInstanceScript::SpawnNextCreature(Creature* spawner)
{
    WaveInfo* wave = GetWaveById(GetCurrentWaveId());
    if(wave)
        wave->Spawn(GetUnits(), spawner);
    else
        sLog->outBasic("TowerDefense: Wave Id [%u] does not have correct loading data in the db. the core could not load the wave.", GetCurrentWaveId());
}
コード例 #19
0
ファイル: C_desc.cpp プロジェクト: dkrotx/gogo_lemmatizer
// DT1 - DT2
int CGraphmatFile::DealDates (size_t i,size_t HB)
{
   // DD.MM.YY
   if ( (GetUnits()[i].GetTokenLength() != 2)  && (GetUnits()[i].GetTokenLength() != 1)) return false;
   int day = GetUnits()[i].ToInt();
   if ((day <1) || (day>31)) return false;
   size_t nt = i+1;
   if (nt == HB) return false;
   if ( !IsOneFullStop(nt) && !(GetUnits()[nt].GetToken()[0] == '/')) return false;
   nt++;
   if (nt == HB) return false;
   int month = GetUnits()[nt].ToInt();
   if ((month <1) || (month>12)) return false;
   nt++;
   if (nt == HB) return false;
   if ( !IsOneFullStop(nt) && !(GetUnits()[nt].GetToken()[0] == '/')) return false;
   nt++;
   if (nt == HB) return false;
   int year =  GetUnits()[nt].ToInt();
   if ((year <1) || (year>2000)) return false;
   SetDes (i,ODate1);
   SetDes (nt, ODate2);
   SetState(i,nt+1,stGrouped);

   return true;    
}
コード例 #20
0
// Convert a CPoint to a Unit CString
CString COption::PointToDisplay(CDPoint a,BOOL horiz)
{
 	CString r;

  	double Scale = GetUnits()==0 ? (float)PIXELSPERMM : ((float)PIXELSPERMM * 25.4f);
	double sx = a.x / Scale;
	double sy = a.y / Scale;
	if (horiz)
	{
  		r.Format(_T("%.1lf"),sy,GetUnits()==0 ? _T("mm") : _T("\""));
	}
	else
	{
		r.Format(_T("%.1lf"),sx,GetUnits()==0 ? _T("mm") : _T("\""));
	}

	return r;
}
コード例 #21
0
ファイル: BattleSimulator.cpp プロジェクト: openwar/openwar
void BattleSimulator::AddObserver(BattleObserver* observer)
{
	_observers.insert(observer);

	for (BattleObjects::Unit* unit : GetUnits())
	{
		observer->OnAddUnit(unit);
		observer->OnCommand(unit, 0);
	}
}
コード例 #22
0
ファイル: BattleObjects.cpp プロジェクト: openwar/openwar
int BattleObjects::CountInfantryInMelee() const
{
	int result = 0;

	for (const Unit* unit : GetUnits())
		if (unit->GetPlatformType() == BattleObjects::PlatformType::Infantry && unit->IsInMelee())
			++result;

	return result;
}
コード例 #23
0
ファイル: frequency.cpp プロジェクト: hendorog/BBApp
QString Frequency::GetUnitString() const
{
    switch(GetUnits()) {
    case Hz: return "Hz";
    case kHz: return "kHz";
    case MHz: return "MHz";
    case GHz: return "GHz";
    }

    return "Hz";
}
コード例 #24
0
 ~DIALOG_EXPORT_3DFILE()
 {
     m_unitsOpt = GetUnits();
     m_copy3DFilesOpt = GetCopyFilesOption();
     m_config->Write( OPTKEY_OUTPUT_UNIT, m_unitsOpt );
     m_config->Write( OPTKEY_3DFILES_OPT, m_copy3DFilesOpt );
     m_config->Write( OPTKEY_USE_RELATIVE_PATHS, m_useRelativePathsOpt );
     m_config->Write( OPTKEY_USE_PLAIN_PCB, m_usePlainPCBOpt );
     m_config->Write( OPTKEY_VRML_REF_UNITS, m_VRML_RefUnitChoice->GetSelection() );
     m_config->Write( OPTKEY_VRML_REF_X, m_VRML_Xref->GetValue() );
     m_config->Write( OPTKEY_VRML_REF_Y, m_VRML_Yref->GetValue() );
 };
コード例 #25
0
ファイル: C_desc.cpp プロジェクト: dkrotx/gogo_lemmatizer
bool CGraphmatFile :: FindKeySequence (const char* title, size_t i,size_t HB, size_t& GraLast) const
{
	size_t k=0;
	bool OborotHasSpaceBefore = true;
	bool TextHasSpaceBefore = true;

	do 
	{
		title ++;
		k++;
		if (k == GetUnits()[i].GetTokenLength())
		{
			k =0;
			i++;
		};

		bool ObororCharIsPunct = ispunct((unsigned char)*title) != 0;

		long space_size = strspn (title," ");
		title += space_size;
		OborotHasSpaceBefore = (space_size > 0) || ObororCharIsPunct;

		long j = PSoft(i, HB);
		TextHasSpaceBefore = (j > i) ||  HasDescr (i,OPun);
		i = j;

	}
	while	(		*title 
				&&	(i < HB)
				&&	!(GetUnits()[i].IsGrouped())
				&&	IsSuperEqualChar ((unsigned char)*title,(unsigned char)GetUnits()[i].GetToken()[k], m_Language)
				&&	(OborotHasSpaceBefore == TextHasSpaceBefore)
			);

	if (*title || k != 0) 
		return false;

	GraLast  =  BSoft(i-1)+1;
	return  true;
}
コード例 #26
0
ファイル: C_desc.cpp プロジェクト: dkrotx/gogo_lemmatizer
/*
	Building units like  "Bill J. Bush"
*/
bool CGraphmatFile::DealEnglishStyleFIO (size_t StartPos, size_t EndPos)
{
  size_t  i = StartPos;
  if (!GetUnits()[i].IsEnglishName()) return false;
  i = PSoft(i+1,EndPos);
  if (   (i == EndPos) 
	  || !(     GetUnits()[i].GetTokenLength() == 1
	         && HasDescr (i, OLLE)
	      )
	 )	   return  false;
  i = PSoft(i+1,EndPos);
  if ((i == EndPos) || !IsOneFullStop(i)) return  false;
  i = PSoft(i+1,EndPos);
  if ((i == EndPos) || !HasDescr(i, OLLE)) return  false;
  if (HasGrouped(StartPos,i+1)) return false;

  SetDes (StartPos, OFAM1);
  SetDes (i, OFAM2);

  SetState(StartPos,i+1,stGrouped);
  return true;
};
コード例 #27
0
ファイル: wordpad.cpp プロジェクト: jetlive/skiaming
void CWordPadApp::SaveOptions()
{
	WriteProfileInt(szSection, szWordSel, m_bWordSel);
	WriteProfileInt(szSection, szUnits, GetUnits());
	WriteProfileInt(szSection, szMaximized, m_bMaximized);
	WriteProfileBinary(szSection, szFrameRect, (BYTE*)&m_rectInitialFrame,
		sizeof(CRect));
	WriteProfileBinary(szSection, szPageMargin, (BYTE*)&m_rectPageMargin,
		sizeof(CRect));
	m_optionsText.SaveOptions(szTextSection);
	m_optionsRTF.SaveOptions(szRTFSection);
	m_optionsWord.SaveOptions(szWordSection);
	m_optionsWrite.SaveOptions(szWriteSection);
	m_optionsIP.SaveOptions(szIPSection);
}
コード例 #28
0
ファイル: ahi.c プロジェクト: BackupTheBerlios/arp2-svn
void NewSettings(char *name) {
  FreeVec(Units);
  FreeList(UnitList);

  globalprefs.ahigp_DebugLevel       = AHI_DEBUG_NONE;
  globalprefs.ahigp_DisableSurround  = FALSE;
  globalprefs.ahigp_DisableEcho      = FALSE;
  globalprefs.ahigp_FastEcho         = FALSE;
  globalprefs.ahigp_MaxCPU           = (90 << 16) / 100;
  globalprefs.ahigp_ClipMasterVolume = FALSE;
  globalprefs.ahigp_AntiClickTime    = 0;

  UnitList = GetUnits(name);
  Units = List2Array((struct List *) UnitList);

  NewUnit(0);
}
コード例 #29
0
ファイル: cTLE.cpp プロジェクト: ARTSAT/data-remap
/////////////////////////////////////////////////////////////////////////////
// GetField()
// Return requested field as a double (function return value) or as a text
// string (*pstr) in the units requested (eUnit). Set 'bStrUnits' to true 
// to have units appended to text string.
//
// Note: numeric return values are cached; asking for the same field more
// than once incurs minimal overhead.
double cTle::GetField(eField   fld, 
                      eUnits   units,    /* = U_NATIVE */
                      string  *pstr      /* = NULL     */,
                      bool     bStrUnits /* = false    */) const
{
   assert((FLD_FIRST <= fld) && (fld < FLD_LAST));
   assert((U_FIRST <= units) && (units < U_LAST));

   if (pstr)
   {
      // Return requested field in string form.
      *pstr = m_Field[fld];
      
      if (bStrUnits)
      {
         *pstr += GetUnits(fld);
      }

      TrimLeft (*pstr);
      TrimRight(*pstr);
      
      return 0.0;
   }
   else
   {
      // Return requested field in floating-point form.
      // Return cache contents if it exists, else populate cache
      FldKey key = Key(units, fld);

      if (m_mapCache.find(key) == m_mapCache.end())
      {
         // Value not in cache; add it
         double valNative = atof(m_Field[fld].c_str());
         double valConv   = ConvertUnits(valNative, fld, units); 
         m_mapCache[key]  = valConv;

         return valConv;
      }
      else
      {
         // return cached value
         return m_mapCache[key];
      }
   }
}
コード例 #30
0
ファイル: C_desc.cpp プロジェクト: dkrotx/gogo_lemmatizer
// пункты перечисления типа (1) или [1]
int  CGraphmatFile::DealBulletsWithTwoBrackets (size_t StartPos, size_t EndPos)
{
  size_t i = StartPos;

  if   (   !HasDescr(i, OOpn) )  return false;

  if   (   HasDescr(i, OBullet) )  return false;

  size_t nt = PSpace(i+1, EndPos);

  if (nt == EndPos) return false;
    
   // проверяем, является ли данная графема перечислителем
  if (!IsBulletWord(nt) )  return false;

  size_t BulletWordNo = nt;

  // удостоверяемся, что данная графема  не вошла  в графематические группы
  size_t  nh = (i>0) ? BSpace(i-1) : 0;

  // перед перечислителем должен стоять конец строки 
  if (   !GetUnits()[nh].IsEOLN()
	  && (nh > 0)) return false;

  if (nt + 1 >= EndPos) return false;
  nt = PSpace(nt+1,EndPos);

  // после перечислителя должно стоять либо закрывающая скобка, либо точка
  if (nt == EndPos) return false;

  if   (   !HasDescr(nt, OCls) )  return false;

  if (HasGrouped(StartPos,nt+1)) return false;

  SetDes (StartPos, OBullet);
  if (!HasDescr (StartPos, OPar))
	SetDes(StartPos, OPar);

  SetState(StartPos,nt+1,stGrouped);

  return true;
};