对二进制流文件读取并保存成txt

请问如何将下面的函数功能改写成 将文件列表中存在的以dly为后缀的文件打开读取并写入txt文件中?且不能存在乱码
void CMyNewDlg::OnButtonSavetxtfile()
{
std::vector curveData;
CFile file;
file.Open("data.txt", CFile::modeCreate | CFile::modeWrite);
file.SeekToBegin();

for (int i = 0; i < m_listCtrlRight.GetItemCount(); i++)
{
    float lenSum = 0;
    for (int j = i + 1; j < m_listCtrlRight.GetItemCount(); j++)
    {
        lenSum += atof(m_listCtrlRight.GetItemText(j, 1));
    }
    
    CString *addr = (CString *)m_listCtrlRight.GetItemData(i);
    // AfxMessageBox(*addr);
    
    curveData.clear();
    getCurveData(*addr, &curveData);
    
    for (int k = 0; k < curveData.size(); k++)
    {
        float old = curveData[k]->fMetricDelay;
        curveData[k]->fMetricDelay += lenSum;
        
        CString data;
        data.Format("%s,%s,%s,%d,%d,%f,%f,%f,%f\n", curveData[k]->szCurveName, curveData[k]->szCurveAlias, curveData[k]->szMetricCurveUnit, curveData[k]->sInstrumentAddress, curveData[k]->sCurveId, curveData[k]->fMultiCoefficient, curveData[k]->fAddCoefficient, curveData[k]->fMetricDelay, curveData[k]->fCalculateDelay);
        file.Write(data.GetBuffer(0), data.GetLength());
    }
}
file.Close();
AfxMessageBox("保存文件成功!");

}