• 在Unicode环境下读出和写入文件


    近日,做一个文件的读取和写入工作,在网上找到的一些方法,但是却不能完全成功,失败的地方在于:不能写入汉字。我想这肯定和UNICODE环境有关,于是查了一下资料,形成了以下文字。

    第一,读取文件(这个没有什么问题)

    const TCHAR szFilter[] = _T("CVS文件(*.csv)|*.csv");
    CFileDialog OpenFileDialog(TRUE,_T(
    "csv"),NULL,OFN_FILEMUSTEXIST|OFN_HIDEREADONLY,szFilter,NULL);
    if (OpenFileDialog.DoModal() == IDOK)
    {
    CString FileName
    = OpenFileDialog.GetPathName();
    CStdioFile File;
    File.Open(FileName,CFile::modeRead);
    CString strLine;
    while (File.ReadString(strLine))
    {
    MessageBox(strLine);
    }
    }



    第二,定文件

    const TCHAR szFilter[] = _T("CVS文件(*.csv)|*.csv");
    CFileDialog OpenFileDialog(FALSE,_T(
    "csv"),NULL,OFN_FILEMUSTEXIST|OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT,szFilter,NULL);
    if (OpenFileDialog.DoModal() == IDOK)
    {
    CString FileName
    = OpenFileDialog.GetPathName();
    _tsetlocale(LC_CTYPE,_T(
    "chs"));
    CStdioFile File(FileName,CFile::modeCreate
    |CFile::modeWrite);
    File.SetLength(
    0);
    CString strLine
    = _T("你,我\n");
    File.WriteString(strLine);
    strLine
    = _T("你,我\n");
    File.WriteString(strLine);
    File.Close();
    }


    当然,在此之前还需要引入一个头文件#include <locale>


  • 相关阅读:
    Net Core 使用外部登陆提供程序登陆的流程,以及身份认证的流程
    Xamarin开发手机聊天程序
    线上处理数据转载
    Logstash
    Webpack按需加载一切皆模块
    网络编程
    NET Core 事件总线
    Using INSERT IGNORE with MySQL to prevent duplicate key errors
    Spring的两种任务调度Scheduled和Async
    Embedded servlet containers
  • 原文地址:https://www.cnblogs.com/luoshupeng/p/2180712.html
Copyright © 2020-2023  润新知