Esempio n. 1
0
static int toTxt(LPCTSTR lpszFileName,LPCTSTR lpszFileName2){
	
	CStdioFile srtFile(lpszFileName,CFile::modeCreate|CFile::modeReadWrite|CFile::typeText),
		txtFile(lpszFileName2,CFile::modeCreate|CFile::modeReadWrite|CFile::typeText);

	CString srtLine;
	while(srtFile.ReadString(srtLine)){
		if(srtLine.Find (_T("-->")) != -1){
			while(srtFile.ReadString(srtLine)){
				if(srtLine != _T("\n")){
					txtFile.WriteString (srtLine);
				}else{
					txtFile.WriteString(_T("----\n"));
					srtFile.ReadString (srtLine);
					break;
				}
			}
		}else{
			;
		}
	}

	srtFile.Close();
	txtFile.Close();
}
Esempio n. 2
0
/**
 * Loads the characters contained in each font
 * from a UTF-8 file to use as the index.
 * @param filename Filename of the index file.
 */
void Font::loadIndex(const std::string &filename)
{
	_index = L"";

	std::ifstream txtFile (filename.c_str(), std::ios::in | std::ios::binary);
	if (!txtFile)
	{
		throw Exception("Failed to load index");
	}

	char value;
	std::string buffer;
	while (txtFile.read(&value, 1))
	{
		buffer += value;
	}

	if (!txtFile.eof())
	{
		throw Exception("Invalid data from file");
	}

	_index = Language::utf8ToWstr(buffer);
	txtFile.close();
}
bool FileCSV::Load(const wxString& fileName, unsigned int itemsInLine)
{
    // Make sure file exists
    if (fileName.IsEmpty() || !wxFileName::FileExists(fileName))
    {
        mmErrorDialogs::InvalidFile(pParentWindow_);
        return false;
    }

    // Open file
    wxTextFile txtFile(fileName);
    if (!txtFile.Open(encoding_))
    {
        mmErrorDialogs::MessageError(pParentWindow_, _("Unable to open file."), _("Universal CSV Import"));
        return false;
    }

    // Parse rows
    wxString line;
    int row = 0;
    for (line = txtFile.GetFirstLine(); !txtFile.Eof(); line = txtFile.GetNextLine())
    {
        csv2tab_separated_values(line, delimiter_);
        wxStringTokenizer tkz(line, "\t", wxTOKEN_RET_EMPTY_ALL);
        itemsTable_.push_back(std::vector<ValueAndType>());

        // Tokens in row
        while (tkz.HasMoreTokens())
        {
            if (itemsTable_[row].size() >= itemsInLine)
                break;

            wxString token = tkz.GetNextToken();
            itemsTable_[row].push_back(token);
        }

        ++row;
    }

    txtFile.Close();
    return true;
}
bool FileCSV::Save(const wxString& fileName)
{
    // Make sure file exists
    if (fileName.IsEmpty())
    {
        mmErrorDialogs::InvalidFile(pParentWindow_);
        return false;
    }

    // Open file
    wxTextFile txtFile(fileName);
    if (!txtFile.Create())
    {
        mmErrorDialogs::MessageError(pParentWindow_, _("Unable to create file."), _("Universal CSV Import"));
        return false;
    }

    // Store lines
    for (auto rowIt : itemsTable_)
    {
        wxString line;
        for (auto itemIt : rowIt)
        {
            if (!line.IsEmpty())
                line += delimiter_;
            line += inQuotes(itemIt.value, delimiter_);
        }
        txtFile.AddLine(line);
    }

    // Save the file.
    if (!txtFile.Write(wxTextFileType_None, encoding_))
    {
        mmErrorDialogs::MessageError(pParentWindow_, _("Could not save file."), _("Export error"));
        return false;
    }
    txtFile.Close();
    return true;
}
Esempio n. 5
0
IniFile::IniFile(const char* strFileName): m_txtFileName(strFileName), m_isChanged(false), m_isDecrypt(false)
{
    TextFileInputStream txtFile(strFileName);
    parseText(txtFile);
}
Esempio n. 6
0
//////////////////////////////////////////////////////////////////////////
// 读取数据到内存中,并且初始话pDatabase指针指向数据库
// 数据库的格式为:
// pDatabase中数据存储格式为:
// 每行:本行的单词数 依次每个单词
//////////////////////////////////////////////////////////////////////////
bool DataShared::loadData()
{
  ifstream zhFile(m_zhFile.c_str());
  if (zhFile.fail()){
#ifdef _ERROR
    cerr <<"Can not open" <<m_zhFile <<endl;
#endif
    return false;
  }
  string lineStr;
  while(!(zhFile.eof())){
    getline(zhFile,lineStr);
    if(lineStr.size() == 0){
      continue;
    }
    int64_t temp = atoi(lineStr.substr(lineStr.find('\t')+1,lineStr.size()).c_str());
    m_ZhSet.insert(temp);
  }
#ifdef _DEBUG
  cout <<"Han zi:\n";
  for(set<int64_t>::iterator iter = m_ZhSet.begin();iter != m_ZhSet.end();iter++){
    cout << *iter <<"\t";
  }
#endif
  ifstream txtFile(m_inputFile.c_str());
  if(txtFile.fail()){
#ifdef _ERROR
    cerr <<"Can not open" <<m_inputFile <<endl;
#endif
    return false;
  }
  getline(txtFile,lineStr); //读取第一行信息
  vector<string> vstr = getInfo(lineStr.c_str(),"\t");
  m_nCountRows = atoi(vstr[0].c_str());//总行数
  m_nCountDifItem = atoi(vstr[1].c_str());//总不同单词数
  m_nCountItem = atoi(vstr[2].c_str());//总单词数
  int64_t min = (int)(m_minSup * m_nCountRows);
  m_pDatabase = new int64_t *[m_nCountRows];
  m_pWordProject = new set<int64_t> *[m_nCountDifItem];
  for(int i = 0;i < m_nCountDifItem;i++){
    m_pWordProject[i] = new set<int64_t>();
  }
  int64_t lineCount = 0;
  while(!(txtFile.eof())){
    getline(txtFile,lineStr);
    if(lineStr.size() == 0){
      continue;
    }
    vector<string> vstr = getInfo(lineStr.c_str(),"\t");
    m_pDatabase[lineCount] = new int64_t[vstr.size() + 1];
    m_pDatabase[lineCount][0] = vstr.size();
    for(int i = 0;i < vstr.size();i++){
      int64_t id = atoi(vstr[i].c_str());
      m_pDatabase[lineCount][i + 1] = id;
      m_pWordProject[id]->insert(lineCount);
    }
    lineCount++;
  }
  //Compute Freequent1Seq
  for(int64_t i = 0;i < m_nCountDifItem;i++){
    if(m_pWordProject[i]->size() >= min){
      if(m_ZhSet.end() != m_ZhSet.find(i)){
        m_freq1Item.push_back(i);
      }
    }
  }
#ifdef _DEBUG
  cout <<endl;
  cout <<"Database:\n";
  for(int i = 0;i < m_nCountRows;i++){
    for(int j = 0;j < m_pDatabase[i][0];j++){
      cout << m_pDatabase[i][j+1] <<"\t";
    }
    cout <<endl;
  }
  cout <<"Freq iterms:\n";
  vector<int64_t>::iterator iter = m_freq1Item.begin();
  while(iter != m_freq1Item.end()){
    cout << *iter++ <<" ";
  }
  cout <<endl;
#endif
  return true;
}