MFC - I / O มาตรฐาน
ไลบรารี MFC มีการประมวลผลไฟล์ในเวอร์ชันของตัวเอง สิ่งนี้ทำได้ผ่านคลาสชื่อ CStdioFile คลาส CStdioFile มาจาก CFile สามารถจัดการการอ่านและการเขียนไฟล์ข้อความ Unicode รวมทั้งไฟล์ข้อความหลายไบต์ธรรมดา
นี่คือรายการของตัวสร้างที่สามารถเริ่มต้นวัตถุ CStdioFile -
CStdioFile();
CStdioFile(CAtlTransactionManager* pTM);
CStdioFile(FILE* pOpenStream);
CStdioFile(LPCTSTR lpszFileName, UINT nOpenFlags);
CStdioFile(LPCTSTR lpszFileName, UINT nOpenFlags, CAtlTransactionManager* pTM);
นี่คือรายการวิธีการใน CStdioFile -
ซีเนียร์ | ชื่อและคำอธิบาย |
---|---|
1 | Open มากเกินไป Open ถูกออกแบบมาเพื่อใช้กับตัวสร้าง CStdioFile เริ่มต้น (แทนที่ CFile :: Open) |
2 | ReadString อ่านข้อความบรรทัดเดียว |
3 | Seek วางตำแหน่งตัวชี้ไฟล์ปัจจุบัน |
4 | WriteString เขียนข้อความบรรทัดเดียว |
ให้เราดูตัวอย่างง่ายๆอีกครั้งโดยการสร้างแอปพลิเคชันที่ใช้ไดอะล็อก MFC ใหม่
Step 1 - ลากปุ่มควบคุมการแก้ไขหนึ่งปุ่มและปุ่มสองปุ่มตามที่แสดงในภาพรวมต่อไปนี้
Step 2 - เพิ่มตัวแปรค่า m_strEditCtrl สำหรับการควบคุมการแก้ไข
Step 3 - เพิ่มตัวจัดการเหตุการณ์คลิกสำหรับปุ่มเปิดและบันทึก
Step 4 - นี่คือการใช้งานตัวจัดการเหตุการณ์
void CMFCStandardIODlg::OnBnClickedButtonOpen() {
// TODO: Add your control notification handler code here
UpdateData(TRUE);
CStdioFile file;
file.Open(L"D:\\MFCDirectoryDEMO\\test.txt", CFile::modeRead | CFile::typeText);
file.ReadString(m_strEditCtrl);
file.Close();
UpdateData(FALSE);
}
void CMFCStandardIODlg::OnBnClickedButtonSave() {
// TODO: Add your control notification handler code here
UpdateData(TRUE);
CStdioFile file;
if (m_strEditCtrl.GetLength() == 0) {
AfxMessageBox(L"You must specify the text.");
return;
}
file.Open(L"D:\\MFCDirectoryDEMO\\test.txt", CFile::modeCreate |
CFile::modeWrite | CFile::typeText);
file.WriteString(m_strEditCtrl);
file.Close();
}
Step 5 - เมื่อโค้ดด้านบนถูกคอมไพล์และดำเนินการคุณจะเห็นผลลัพธ์ต่อไปนี้
Step 6- เขียนอะไรบางอย่างแล้วคลิกบันทึก มันจะบันทึกข้อมูลในไฟล์ * .txt
Step 7 - หากคุณดูตำแหน่งของไฟล์คุณจะเห็นว่ามีไฟล์ test.txt
Step 8- ตอนนี้ปิดแอปพลิเคชัน เรียกใช้แอปพลิเคชันเดียวกัน เมื่อคุณคลิกเปิดข้อความเดิมจะโหลดอีกครั้ง
Step 9 - เริ่มต้นด้วยการเปิดไฟล์อ่านไฟล์ตามด้วยการอัปเดต Edit Control