MFC: E / S estándar

La biblioteca MFC proporciona su propia versión de procesamiento de archivos. Esto se hace a través de una clase llamada CStdioFile. La clase CStdioFile se deriva de CFile. Puede manejar la lectura y escritura de archivos de texto Unicode, así como archivos de texto ordinarios de varios bytes.

Aquí está la lista de constructores, que pueden inicializar un objeto CStdioFile:

CStdioFile();
CStdioFile(CAtlTransactionManager* pTM);
CStdioFile(FILE* pOpenStream);
CStdioFile(LPCTSTR lpszFileName, UINT nOpenFlags);
CStdioFile(LPCTSTR lpszFileName, UINT nOpenFlags, CAtlTransactionManager* pTM);

Aquí está la lista de métodos en CStdioFile:

No Señor. Nombre y descripción
1

Open

Sobrecargado. Open está diseñado para usarse con el constructor CStdioFile predeterminado (Overrides CFile :: Open).

2

ReadString

Lee una sola línea de texto.

3

Seek

Coloca el puntero del archivo actual.

4

WriteString

Escribe una sola línea de texto.

Veamos de nuevo un ejemplo sencillo creando una nueva aplicación basada en cuadros de diálogo MFC.

Step 1 - Arrastre un control de edición y dos botones como se muestra en la siguiente instantánea.

Step 2 - Agregar variable de valor m_strEditCtrl para el control de edición.

Step 3 - Agregue un controlador de eventos de clic para los botones Abrir y Guardar.

Step 4 - Aquí está la implementación de controladores de eventos.

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 - Cuando se compile y ejecute el código anterior, verá el siguiente resultado.

Step 6- Escribe algo y haz clic en Guardar. Guardará los datos en un archivo * .txt.

Step 7 - Si observa la ubicación del archivo, verá que contiene el archivo test.txt.

Step 8- Ahora, cierra la aplicación. Ejecute la misma aplicación. Al hacer clic en Abrir, el mismo texto se carga nuevamente.

Step 9 - Comienza abriendo el archivo, leyendo el archivo y luego actualizando el Control de edición.