Здесь располагается содержимое class "clearfloat" id "рамка"

Курс кружка "Программист"

У р о к и
  1. Этапы решения задач на компьютере. Разработка программы.
  2. *КОНТРОЛЬ*
  3. Понятие алгоритма. Свойства алгоритма.
  4. *КОНТРОЛЬ*
  5. Формы представления алгоритмов. Графический способ записи алгоритмов. Школьный алгоритмический язык.
  6. *КОНТРОЛЬ*
  7. Базовые алгоритмические структуры: базовая структура следование.
  8. *КОНТРОЛЬ*
  9. Базовые алгоритмические структуры: базовая структура ветвление.
  10. *КОНТРОЛЬ*
  11. Базовые алгоритмические структуры: базовая структура ЦИКЛ.
  12. *КОНТРОЛЬ*
  13. Эволюция языков программирования. Классификация языков программирования.
  14. *КОНТРОЛЬ*
  15. Язык Си++. Эволюция языка и его преимущества.
  16. *КОНТРОЛЬ*
  17. Синтаксис языка Си++.
  18. *КОНТРОЛЬ*
  19. Константы и переменные в С++. Преобразование типов данных.
  20. *КОНТРОЛЬ*
  21. Операторы используемые в С++.
  22. *КОНТРОЛЬ*
  23. Некоторые визуальные компоненты С++Builder.
  24. *КОНТРОЛЬ*
    ***Лабораторная работа № 1***
    Создание простого приложения в С++Builder.
  25. Основные константы и математические функции. Команда форматированного вывода строки.
  26. *КОНТРОЛЬ*
    ***Лабораторная работа № 2***
    Создание программы вычисления значения функции.
  27. Условные операторы выбора if.
  28. *КОНТРОЛЬ*
    ***Лабораторная работа № 3***
    Создание программы с разветвленной структурой.
  29. Условный оператор множественного выбора switch. Безусловный переход.
  30. *КОНТРОЛЬ*
    ***Лабораторная работа № 4***
    Создание программы со структурой ВЫБОР.
  31. Оператор цикла for (цикл со счетчиком).
  32. *КОНТРОЛЬ*
    ***Лабораторная работа № 5***
    Создание программы c циклом ДЛЯ.
  33. Операторы цикла с условием. Прерывание цикла.
  34. *КОНТРОЛЬ*
    ***Лабораторная работа № 6***
    Создание программы c циклом ПОКА.
  35. Одномерные массивы. Обработка строк.
  36. *КОНТРОЛЬ*
    ***Лабораторная работа № 7***
    Создание программы обработки строк.
  37. Многомерные массивы.
  38. *КОНТРОЛЬ*
    ***Лабораторная работа № 8***
    Создание программы обработки двумерного массива.
  39. Указатели и ссылки.
  40. *КОНТРОЛЬ*
  41. Функции: объявление, описание и использование.
  42. *КОНТРОЛЬ*
    ***Лабораторная работа № 9***
    Создание и использование функций в C++.
  43. Файлы и потоки. Файловый ввод/вывод с помощью компонентов.
  44. *КОНТРОЛЬ*
    ***Лабораторная работа № 10***
    Работа с файлами с помощью компонентов С++Builder.
  45. Файловый вывод/вывод в двоичном режиме.
  46. *КОНТРОЛЬ*
    ***Лабораторная работа № 11***
    Запись и чтение блоков из двоичного файла (произвольный доступ).

    ***Лабораторная работа № 12***
    Запись, дописывание и чтение потоков из файла.
Дополнения

22. Файлы и потоки. Файловый ввод/вывод с помощью компонентов.

Работа с файлами в C++Builder может производиться различными  способами: использование библиотечных компонентов, работа с файлами как с потоками в стиле C, работа с файлами как с потоками в стиле C++. Рассмотрим некоторые из них.

Ввод/вывод в файл с помощью компонентов
Работа с текстовыми файлами может осуществляться с помощью методов LoadFromFile и SaveToFile, имеющихся у классов TStrings и TStringList. Эти классы описывают списки строк и обладают множеством методов, позволяющих манипулировать строками.
Не забудьте только, что если требуемый файл расположен не в текущем каталоге и вам надо указать путь к файлу, то обратные слэши в записи пути должны быть сдвоенные . Например, если вам требуется файл"c:\MyTest\Test.txt", то вы должны записать его как "c:\\MyTest\\Test.txt".
Если вы открываете файл для того, чтобы пользователь мог его просмотреть, что-то в нем отредактировать и сохранить, вы можете обойтись без описанного выше объекта типа TStringList. Для этих целей проще воспользоваться многострочными окнами редактирования типов TMemo или TRichEdit. В последнем случае вы можете работать не только с обычными текстовыми файлами, но и с файлами в обогащенном формате RTF. Свойства Lines этих компонентов имеют тип TStrings, что позволяет применять к ним непосредственно методыLoadFromFile и SaveToFile. Например:
Memo1->Lines->LoadFromFile(SFile);
RichEdit1->Lines->LoadFromFile(SFile);
Через компоненты C++Builder можно работать не только с текстовыми файлами, но и с файлами изображений и мультимедиа.
Ввод и вывод потоков
В C++ определены три класса файлового ввода/вывода:
ifstream - входные файлы для чтения
ofstream - выходные файлы для записи
fstream - файлы для чтения и записи

Чтобы использовать эти классы надо включить в модуль директиву
#include <fstream.h>

При работе с файлами этих классов можно использовать ряд присущих им методов, но, пожалуй, основным достоинством использования этих классов является возможность применять очень удобные операции поместить в поток (<<) и взять из потока (>>).
Классы Ifstream, ofstream, fstream включают конструкторы, которые автоматически открывают заданный файл.
Формат использования:
ofstream <имя_потока>("<имя файла>", <mode>);
mode – определяет способ открытия и может принимать следующие значения:
ios::app – открытие и присоединение выводимых данных к концу файла
ios::ate – поиск с конца файла
ios::binary – открывает файл в двоичном режиме
ios::in – файл открывается для ввода данных
ios::out – файл открывается для вывода данных
ios::trunk – разрушение содержимого файла перед его использованием (использование ofstream без указания режима стирает содержимое файла перед его использованием)
Некоторые значения перечисления mode можно объединять логическим сложением.
При использовании этих классов, создаются объекты потоков, связанные с файлами, конструкторами соответствующих классов. Например, операторы
ofstream outfile("Test.dat");
if(!outfile)
{
ShowMessage("Файл не удается создать");
return;
}

создают выходной поток outfile, связанный с файлом "Test.dat", создавая одновременно сам файл или, если он уже существует, урезая его длину до нуля. Если по каким-то причинам операция не может быть выполнена, значение outfile равно 0 и оператор if прерывает работу.
Аналогично может создаваться входной поток, связанный с файлом:
ifstream infile("Test.dat");
if(!infile)
{
ShowMessage(" Файл не удается открыть");
return;
}

К созданным таким образом потокам можно применять операции поместить в поток (<<) и взять из потока (>>). Преимущество этих операций, работающих с текстовыми файлами, по сравнению с рассмотренными в предыдущих разделах функциями является простота использования и автоматическое распознавание типов данных.
Операция взять из потока (>>) обладает особенностью, которую надо учитывать при вводе строк в массивы символов. Она читает не всю строку, а только последовательность символов до первого пробельного или разделительного символа. Иначе говоря, она читает не строку до символа перевода строки, а только одно слово. Это удобно, если надо производить анализ текста или искать в нем какое-то ключевое слово. Но это становится недостатком, если надо просто прочесть строку целиком.
В классе ifstream имеется еще два метода чтения из потока: get и getline. Функция get без аргументов вводит одиночный символ из указанного потока (даже, если это символ разделитель) и возвращает этот символ в качестве значения вызова функции. Этот вариант функции get возвращает EOF, когда в потоке встречается признак конца файла.