Автор: Пользователь скрыл имя, 07 Декабря 2011 в 22:34, лекция
Лекции по информатике.Потоки+нижний уровень
1.7. Файловый ввод-вывод в стиле языка С.
1.7.1. Файловый ввод-вывод с помощью потоков в стиле языка С.
AnsiString
При выполнении функция FileExists возвращает True , если файл существует.
3). Для организации диалога можно воспользоваться методом всего приложения Application:
MessageBox(Инфосообщение, Заголовок-Окна, Набор-Кнопок [|Вид-Значка]);
AnsiString AnsiString
В функции
в третьем аргументе
MB_ABORTRETRYIGNORE (три кнопки Отменить, Повторить, Игнорировать)
MB_OK (одна кнопка для вывода информационного сообщения - ОК)
MB_OKCANCEL (две кнопки – ОК и Cancel)
MB_RETRYCANCEL (две кнопки – Повторить и Отменить)
MB_YESNO (две кнопки – Да и Нет)
MB_YESNOCANCEL (три кнопки – Да, Нет и Отменить)
Для определения вида значка, выводимого в сообщении, можно использовать одну из следующих констант:
MB_|CONWARINING (восклицательный знак значка - !)
MB_|CONINFORMATION (буква)
MB_|CONQUESTION (вопросительный знак значка -?)
MB_|CONSTOP (значок – стоп)
Функция MessageBox() возвращает одно из следующих значений:
0 – показать диалог не удалось
1 - выбрана кнопка [ОК] (это значение можно идентифицировать константой - IDOK)
2 – выбрана кнопка [Cancel] (это значение можно идентифицировать константой IDCANCEL)
3 – выбрана кнопка отмены (это значение можно идентифицировать константой IDABORT)
4 – выбрана кнопка повтора (это значение можно идентифицировать константой IDRETRY)
Функция MessageBox(), это стандартная функция операционной системы WINDOWS, а не Builder C++. Поэтому для работы со строковыми типами при обращении к данной функции в Builder C++ потребуется использование базового типа Сhar, а не введенного нового типа строки - AnsiString. Если желание воспользоваться переменной/константой класса AnsiString остается, необходимо применить метод С_str(). Приведем пример:
{…
const AnsiString
Str1= “What it is?”;
char * Gg = “My titul”;
Application
->MessageBox (Str1.c_str(), Gg, MB_OKCANCEL|MB_ICONSTOP); }
4) Функция записи информации в файл в стиле Builder С++ имеет формат:
int FileWrite(Дескриптор, Указатель-Источника-Данных, Количество-Записываемых-Байт)
int * char long
Функция FileWrite() возвращает значение “-1”, если возникла ошибка либо количество записанных в файл байт.
5). Закрытие файла информации в стиле Builder С++ имеет формат:
void FileClose(Дескриптор);
int
6) Чтение данных из файла в стиле Builder С++ имеет формат:
int FileRead(Дескриптор, Указатель-На-Переменную, Количество-Читаемых-Байт)
int * сhar long
7) Открыть файл в стиле Builder С++ имеет формат:
int FileOpen (Идентификатор-Файла, Режим-Открытия);
AnsiString* int
Функция возвращает символ “-1” в случае сбоя в открытии файла либо определяет значение дескриптора при успешном завершении.
Режимы открытия определяется одной из следующих констант:
fmOpenReаd - открытие файла с доступом только по чтению,
fmOpenWrite - открытие файла с доступом только по записи,
fmOpenReadWrite - открытие файла с доступом только по чтению-записи,
Заголовочный файл vcl\sysutils.hpp содержит следующие указанию препроцессору:
#define fmOpenRead (Byte)(0)
#define fmOpenWrite (Byte)(1)
#define
fmOpenReadWrite (Byte)(2)