то KSTR можно примерять все методы класса AnsiString (за исключением присваивания — ведь значение константы менять нельзя):
STR.c_str() и т. д.
В файле Text.h опишем новые текстовые константы:
const AnsiString HEADER_STR = "Внимание!";
const AnsiString FILE_EXIST_STR = "Перезаписать существующий файл ";
и после условного оператора проверки существования файла при необходимости вызовем функцию MessageBoxQ:
if( FileExists(FILE_NAME_STR) )•. { AnsiString text;
text = FILE_EXIST_STR + FILE_NAME_STR + " ?";
if( Application->MessageBox(text.c_str(), HEADER_STR.C_str(),
MB_YESNO ¦ MB_ICONQUESTION) != IDYES ) // Если не нажата кнопка «Да» - прекратить работу return;
Так как результатом сложения констант FILE_EXIST_STR + FILE_NAME_STR будет строка типа AnsiString, то и к целому выражению тоже можно сразу применить метод c_str():
MessageBox((FILE_EXIST_STR + FILE_NAME_STR).c_str(), ...
Однако такой подход не очень нагляден и красив. Экономится всего один оператор, но вызов MessageBoxQ становится довольно громоздким, а проконтролировать его параметры в отладчике будет невозможно. Поэтому лучше избегать подобных «хитрых штучек» Си++ и писать код просто и наглядно.
Сохранение данных в файле
Запись информации в файл осуществляется с помощью стандартной функции FileWriteO. У нее три параметра. Первый — идентификатор ранее открытого файла (в программе-пасьянсе он сохранен в переменной iFile), второй —
231