文章目錄
- 1 通過關鍵詞,讀取某一行 (3種方法)
- 2 刪除 指定行
- 3 修改 指定行
1 通過關鍵詞,讀取某一行 (3種方法)
通過定位關鍵詞,讀取某一行信息,返回CString
//通過定位關鍵詞,讀取某一行信息,返回CString
CString fileRW::Read_CStrLine(CString KEY)
{ifstream ifs; //創建文件輸入對象ifs.open("../x64/Debug/config.ini", ios::in); //打開文件if (!ifs.is_open()) {cout << "文件打開失敗" << endl;return _T("");}CString StrLine;//讀文件,讀取關鍵詞KEY的下一行內容char buf[1024] = { 0 };while (KEY != CString(buf)){ifs.getline(buf, sizeof(buf)); //讀取一行內容}ifs.getline(buf, sizeof(buf));StrLine = CString(buf);ifs.close(); //關閉文件return StrLine;
}
通過定位關鍵詞,讀取某一行信息,返回CString
//通過定位關鍵詞,讀取某一行信息,返回CString
CString fileRW::Read_KeyLine(CString KEY)
{if (!file.Open(GetAppPath() + "./config.ini", CFile::modeRead)){return 0;}CString strLine = _T("");while (file.ReadString(strLine)){if (KEY == strLine){break;}}file.ReadString(strLine);file.Close();return strLine;
}
通過定位關鍵詞,讀取某一行信息,返回string
//通過定位關鍵詞,讀取某一行信息,返回string
string fileRW::Read_strLine(string KEY)
{ifstream ifs; //創建文件輸入對象ifs.open("../x64/Debug/config.ini", ios::in); //打開文件if (!ifs.is_open()) {cout << "文件打開失敗" << endl;return "-1";}string StrLine;//讀文件,讀取關鍵詞KEY的下一行內容char buf[1024] = { 0 };while (KEY != string(buf)){ifs.getline(buf, sizeof(buf)); //讀取一行內容}ifs.getline(buf, sizeof(buf));StrLine = string(buf);ifs.close(); //關閉文件return StrLine;
}
2 刪除 指定行
/************************************
@ Brief: 刪除指定行
@ Author:
@ Created:
@ Return:
************************************/
void fileRW::DelLineData(char* fileName, int lineNum)
{ifstream in;in.open(fileName);string strFileData = "";int line = 1;char lineData[1024] = { 0 };while (in.getline(lineData, sizeof(lineData))){if (line == lineNum){strFileData += "\n";}else{strFileData += CharToStr(lineData);strFileData += "\n";}line++;}in.close();//寫入文件ofstream out;out.open(fileName);out.flush();out << strFileData;out.close();
}
3 修改 指定行
void fileRW::ModifyLineData(string fileName, int lineNum, string lineData)
{ifstream in;in.open(fileName, ios::in);string strFileData = "";int line = 1;char tmpLineData[1024] = { 0 };while (in.getline(tmpLineData, sizeof(tmpLineData))){if (line == lineNum){strFileData += lineData;strFileData += "\n";}else{strFileData += tmpLineData;strFileData += "\n";}line++;}in.close();//寫入文件ofstream out;out.open(fileName, ios::out);out.flush();out << strFileData;out.close();
}
參考:
C++操作文件行(讀取,刪除,修改指定行)
MFC_9.13_登陸注冊,txt保存用戶名密碼
MFC中修改特定行
C++實現讀取文件的指定行數的方法
C++ 讀文件某一行(特定行)數據