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(); }
/** * 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; }
IniFile::IniFile(const char* strFileName): m_txtFileName(strFileName), m_isChanged(false), m_isDecrypt(false) { TextFileInputStream txtFile(strFileName); parseText(txtFile); }
////////////////////////////////////////////////////////////////////////// // 读取数据到内存中,并且初始话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; }