Exemplo n.º 1
0
int main(int argc, char *argv[]) {
  TStr BaseString = "/lfs/1/tmp/curis/week/QBDB.bin";
  TFIn BaseFile(BaseString);
  TQuoteBase *QB = new TQuoteBase;
  TDocBase *DB = new TDocBase;
  QB->Load(BaseFile);
  DB->Load(BaseFile);

  TIntV QuoteIds;
  QB->GetAllQuoteIds(QuoteIds);

  int NumQuotes = QuoteIds.Len();
  THash<TInt, TStrSet> PeakCounts;
  for (int i = 0; i < NumQuotes; i++) {
    TQuote CurQuote;
    if (QB->GetQuote(QuoteIds[i], CurQuote)) {
      TVec<TSecTm> Peaks;
      CurQuote.GetPeaks(DB, Peaks);
      TStr QuoteString;
      CurQuote.GetParsedContentString(QuoteString);
      TStrSet StringSet;
      if (PeakCounts.IsKey(Peaks.Len())) {
        StringSet = PeakCounts.GetDat(Peaks.Len());
      }
      StringSet.AddKey(QuoteString);
      PeakCounts.AddDat(Peaks.Len(), StringSet);
    }
  }

  TIntV PeakCountKeys;
  PeakCounts.GetKeyV(PeakCountKeys);
  PeakCountKeys.Sort(true);
  for (int i = 0; i < PeakCountKeys.Len(); i++) {
    TStrSet CurSet = PeakCounts.GetDat(PeakCountKeys[i]);
    if (CurSet.Len() > 0) {
      printf("QUOTES WITH %d PEAKS\n", PeakCountKeys[i].Val);
      printf("#########################################\n");
      THashSet<TStr> StringSet = PeakCounts.GetDat(PeakCountKeys[i]);
      for (THashSet<TStr>::TIter l = StringSet.BegI(); l < StringSet.EndI(); l++) {
        printf("%s\n", l.GetKey().CStr());
      }
      printf("\n");
    }
  }
  delete QB;
  delete DB;
  return 0;
}
Exemplo n.º 2
0
	std::string Country_Data::UpdateDB(CString s)
	{	
		
		//std::cout << "Beginning DataBase updating\n";
		std::fstream BaseFile(s);
		if (!BaseFile.is_open()) // если файл не открыт
			return "‘айл не может быть открыт!\n"; // сообщить об этом
		int CurrentBaseElement = 0;//start parsing
		while (!BaseFile.eof())
		{

			char Buf[1000];
			int addr = 0;
			
			BaseFile >> Buf;
			int i = 0;
			while (Buf[i] != ',')
			{
				addr = addr * 10 + (int)Buf[i] - 48;
				i++;
			}
			Base[CurrentBaseElement].from.s_addr = addr;
			//std::cout << ip_addr.S_un.S_addr;
			//_getch();
			//Base[CurrentBaseElement].from = inet_ntoa(ip_addr);
			//std::cout << "\n" << addr;
			//unsigned char bytes[4];
			//bytes[0] = addr & 0xFF;
			//bytes[1] = (addr >> 8) & 0xFF;
			//bytes[2] = (addr >> 16) & 0xFF;
			//bytes[3] = (addr >> 24) & 0xFF;
			//std::cout << (char)bytes[3] << "." << (char)bytes[2] << "." << (char)bytes[1] << "." << (char)bytes[0] << "\n";
			//_getch();
			/*
			Base[CurrentBaseElement].from = (reinterpret_cast<char*>(bytes));
			std::cout << Base[CurrentBaseElement].from<<"   jabarda\n";
			_getch();
			*/
			
			addr = 0;
			i++;
			while (Buf[i] != ',')
			{
				addr = addr * 10 + (int)Buf[i] - 48;
				i++;
			}
			Base[CurrentBaseElement].to.s_addr = addr;
			//Base[CurrentBaseElement].to = inet_ntoa(ip_addr);
			//std::cout << "\n" << addr<<"\n";
			//Base[CurrentBaseElement].to = (addr & 0xFF) + ((addr >> 8) & 0xFF) + ((addr >> 16) & 0xFF) + ((addr >> 24) & 0xFF);
			i++;
			//int num = 0;
			
			//Base[CurrentBaseElement].LongName = '\0';
			//Base[CurrentBaseElement].ShortName.;
			Base[CurrentBaseElement].ShortName = "";
			while (Buf[i] != ',')
			{
				Base[CurrentBaseElement].ShortName+= Buf[i];
				i++;
			}
			i++;
			Base[CurrentBaseElement].LongName = "";
			while (Buf[i] != ';')
			{
				Base[CurrentBaseElement].LongName+=Buf[i];
				i++;
			}
			i++; 
			//std::cout << Base[CurrentBaseElement].from << "\n" << Base[CurrentBaseElement].to << "\n" << Base[CurrentBaseElement].ShortName << "\n" << Base[CurrentBaseElement].LongName << "\n";
			//_getch();
			//std::cout << CurrentBaseElement << "\n";
			CurrentBaseElement++;
			
		}
		BaseFile.close();
		amount = CurrentBaseElement;//set data size
		return "Data update successfully";
	}