Baderd94 Ответов: 1

Изменение имени txt - файла в VC^


Привет у меня есть следующий код

CString str1;
CFileDialog   FileDlg1(FALSE," ","ch1",OFN_FILEMUSTEXIST | OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT , "TXT File(*.txt)|*.txt|All(*.*)|*.*|");
if(FileDlg1.DoModal()==IDOK)
{
    ofstream ofs(FileDlg1.GetPathName());
    ofs.write(str1,str1.GetLength());
    ofs.close();
    AfxMessageBox("CH1 Data Saved!");
}

ofstream Data_ch1("ch1.txt", ios::out);


то, что он просто делает, он сохраняет данные Data_ch1 в txt-файле. проблема в том, что он сохраняет данные с именем ch1.txt и если это имя будет изменено, то данные будут пропущены в файле. мне нужен метод изменения имени файла, чтобы имя внутри "" было изменено в зависимости от пользователей.

Что я уже пробовал:

Я попытался использовать GetWindowText и SetWindowText, но они не сработали.

1 Ответов

Рейтинг:
9

Ravi Bhavnani

Вместо того чтобы использовать жестко закодированное значение "ch1.txt", использовать FileDlg1.GetPathName(). Это возвращает имя файла, выбранного пользователем.

/Рави


Baderd94

Большое вам спасибо, это сработало, и именно это я и сделал

// TODO: добавьте свой код обработчика команд здесь

По CString str1 выглядит следующим образом;
CFileDialog FileDlg1(FALSE," ","ch1.txt",OFN_FILEMUSTEXIST | OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT , "TXT-файл(*.txt)|*.txt|All(*.*)|*.*|");
if(FileDlg1.DoModal()==IDOK)
{
ofstream ofs(FileDlg1.GetPathName());
ОФС.писать(str1 выглядит следующим образом,str1 выглядит следующим образом.Метода getlength может служить метод());
ОФС.рядом();
AfxMessageBox("данные CH1 сохранены!");
}

потока Data_ch1(FileDlg1.GetPathName(), ios::out);

Ravi Bhavnani

Пожалуйста, "примите" мое решение, если оно сработало для вас. Это облегчает другим людям поиск ответов на подобные вопросы. Спасибо.

/Рави