MFC - E / S standard

La bibliothèque MFC fournit sa propre version de traitement de fichiers. Cela se fait via une classe nommée CStdioFile. La classe CStdioFile est dérivée de CFile. Il peut gérer la lecture et l'écriture de fichiers texte Unicode ainsi que de fichiers texte ordinaires multi-octets.

Voici la liste des constructeurs, qui peuvent initialiser un objet CStdioFile -

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

Voici la liste des méthodes dans CStdioFile -

Sr.No. Nom et description
1

Open

Surchargé. Open est conçu pour être utilisé avec le constructeur CStdioFile par défaut (remplace CFile :: Open).

2

ReadString

Lit une seule ligne de texte.

3

Seek

Positionne le pointeur de fichier actuel.

4

WriteString

Écrit une seule ligne de texte.

Examinons à nouveau un exemple simple en créant une nouvelle application basée sur une boîte de dialogue MFC.

Step 1 - Faites glisser un contrôle d'édition et deux boutons comme indiqué dans l'instantané suivant.

Step 2 - Ajouter une variable de valeur m_strEditCtrl pour le contrôle d'édition.

Step 3 - Ajouter un gestionnaire d'événements de clic pour les boutons Ouvrir et Enregistrer.

Step 4 - Voici l'implémentation des gestionnaires d'événements.

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 - Lorsque le code ci-dessus est compilé et exécuté, vous verrez la sortie suivante.

Step 6- Écrivez quelque chose et cliquez sur Enregistrer. Il enregistrera les données dans un fichier * .txt.

Step 7 - Si vous regardez l'emplacement du fichier, vous verrez qu'il contient le fichier test.txt.

Step 8- Fermez maintenant l'application. Exécutez la même application. Lorsque vous cliquez sur Ouvrir, le même texte se charge à nouveau.

Step 9 - Il commence par ouvrir le fichier, lire le fichier, puis mettre à jour le contrôle d'édition.