Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


Инструкции Write и WriteLine



Записывает значения элементов списка данных в одну текстовую строку. Элементы в файле разделяются запятыми, строки заключаются в кавычки, после записи последнего элемента списка данных функцией WriteLine заносится символ перевод строки. В качестве десятичного разделителя для числовых данных используется. (точка).

Формат:

Public Sub Write( ByVal FileNumber As Integer, _

ByVal ParamArray Output() As Object )

Public Sub WriteLine( ByVal FileNumber As Integer, _

ByVal ParamArray Output() As Object )

Здесь FileNumber – дескриптор файла,

Output() – список выводимых данных, разделенный запятыми.

Пример.

WriteLine(5, x+2, i+1)

При отсутствии списка данных в файл записывается пустая строка. Инструкцию Write рекомендуется использовать, если файл затем будет читаться инструкцией input, поскольку она обеспечивает четкое разделение элементов данных.

Инструкции Print и PrintLine

Также записывает значения элементов списка данных в файл. Основное отличие этих инструкций от инструкций Write и WriteLine заключается в разделении выводимых данных пробелами.

Формат:

Public Sub Print( ByVal FileNumber As Integer, _

ByVal ParamArray Output() As Object )

Public Sub PrintLine( ByVal FileNumber As Integer, _

ByVal ParamArray Output() As Object )

Элементы списка данных выравниваются на установленную позицию табуляции.

Список данных может содержать функции Tab ([ n ]) и Spc ( n ).

Функция Tab ([ n ]) располагает очередной элемент, начиная с n -й позиции от начала строки. Если n < текущей позиции в файле, то элемент располагается с n -й позиции следующей строки. Функция Tab без аргумента вставляет значение с начала очередной позиции табуляции.

Функция Spc ( n ) вставляет между очередными выводимыми значениями n пробелов.

Пример.

Print(5, " Координаты точки: ", x, Spc(5), y)

Дополнительные функции

Полезными могут оказаться следующие функции:

FileLen(< путь> ) – длина неоткрытого файла в байтах,

LOF(< дескриптор> ) – длина открытого файла в байтах,

EOF(< дескриптор> ) – возвращает true при достижении конца файла.

Функция MsgBox

Эта функция не относится к функциям работы с файлами, но, поскольку необходимо, чтобы программа на языке Basic выдавала на экран информацию о ходе выполнения, она приводится в данном разделе. Функция MsgBox выдает на экран сообщение в диалоговом окне, ожидает нажатие пользователя на одну из кнопок окна и возвращает значение типа integer, равное № нажатой кнопки. Поскольку здесь эта функция нужна лишь для индикации хода выполнения программы, приводится упрощенное обращение к функции MsgBox, которое формирует окно сообщения с одной кнопкой " ОК".


 

Формат:

MsgBox(< сообщение>, , < заголовок> )

Пример.

MsgBox(" Длина последовательности: " & kol, , " Результат" )

Если заголовок отсутствует, то вместо него выводится название приложения. Так как сообщение представляет собой текстовую строку, то при необходимости вывода нескольких значений (возможно числовых) следует применять оператор сцепления строк &.

Вопросы для самопроверки и контроля

Вопросы для самопроверки

1. В чем отличие последовательных файлов и файлов с произвольным доступом?

2. Что представляют собой файлы с расширением по умолчанию bak?

3. Что такое дескриптор файла?

4. Что означает запись FILE* в языке C?

5. Что делает инструкция FileClose без параметров?

6. Укажите тип первого параметра функции MsgBox.

Контрольные вопросы

1. Чем отличаются текстовые и бинарные файлы?

2. Что представляет собой дескриптор файла в языке Basic?

3. Перечислите и поясните значения параметра способа обработки функции FileOpen?

4. Чем отличается использование инструкций Write и Print в языке Basic?

5. Какой параметр добавляется в функциях работы с файлами по сравнению со стандартными потоками?

 

СТРУКТУРА ПРОГРАММЫ

Любая программа на языке C или Basic состоит из одной или нескольких процедур, одна из которых должна иметь имя main. Она получает управление от операционной системы (ОС) и инициирует выполнение приложения. Ее нельзя вызвать из другой процедуры и параметры она может получать только от ОС. Напомним, что в языке C определен только один вид процедур – функции ( function ), в языке Basic – два: подпрограммы ( sub ) и функции ( function ). Главной процедурой в программе на языке Basic является подпрограмма sub.

Некоторые процедуры могут иметь общие данные и их разумно объединить в один фрагмент программы, называемый модулем. Каждый модуль может компилироваться автономно и хранится на диске в виде отдельного файла. Для языка C++ этот файл имеет расширение.cpp, для языка Basic -.vb. В языке Basic каждый модуль выделяется специальными инструкциями вида: Module < имя>

Пример.

Module prostoe

………………..

End Module

Причинами разбиения программы на модули являются:

- борьба со сложностью,

- возможность подключения к программе ранее разработанных компонентов,

- длительность трансляции больших программ,

- бригадное программирование.

Каждая процедура может иметь дополнительный уровень структуры – блок. В языке С блок – это последовательность инструкций, ограниченная {…} (фигурными скобками) при условии, что эта последовательность включает инструкции объявления объектов программы. В языке Basic это последовательность инструкций, ограниченная любой сложной инструкцией ( sub, for, if и т.п.).Блоки могут быть вложены друг в друга. Таким образом, элементами структуры программы являются: файл (модуль), процедура, блок.

Элементы структуры программы.

14.1.1. Язык C++

< программа>: =< файл> [< файл> ]...

< файл>: =[< объявления> ][< функция> ][[< объявления> ][< функция> ]]... < объявления>: ={< определения> |< описания> }

< функция>: =< заголовок> < блок>

< блок>: ={[объявление]… | [< исполняемая_инструкция> ]… | < блок> ]...}…

Определение – объявление объекта программы с выделением под него памяти.

Описание – любая невыполняемая инструкция языка или директива препроцессора.

Замечания.

1. Следует стремиться не располагать объявления вне текста функций. Если же в этом есть необходимость, то нужно располагать их в начале файла перед текстом первой функции.

2. Внутри функций объявления должны находиться перед исполняемыми инструкциями. В языке C все объявления должны в блоке находиться перед первой исполняемой инструкцией, в языке C++ – перед исполняемыми инструкциями, в которых используются объявленные объекты.

3. Исполняемые инструкции не могут находиться вне функций.

4. Следует избегать применения внутренних, и тем более вложенных, блоков в функциях, поскольку в большинстве приложений без них можно обойтись.

5. В состав исходных текстов программ входят, кроме файлов с расширением.c или.cpp, заголовочные файлы с расширением.h, содержащие директивы препроцессора и описания. Эти файлы добавляются к текстам.cpp файлов директивой препроцессора #include. Прототипы всех встроенных функций и некоторые константы хранятся в различных заголовочных файлах, которые надо включать в исходный код тех модулей, где они используются с помощью директивы #include. Так для всех функций стандартного ввода-вывода ( printf, scanf, gets и др.) прототипы хранятся в файле stdio.h, консольного ( clrscr, getch и др.) – в файле coniow.h, математических и некоторые универсальные константы (π – M_PI, π /2 – M_PI_2, e – M_E и др.) – в файле math.h, обработки строк – в файле string.h. Максимальные и минимальные значения для целого типа данных (SHRT_MAX, USHRT_MAX, SHRT_MIN, INT_MAX, UINT_MAX, INT_MIN) находятся в файле limits. h, для данных с плавающей точкой (только большие 0) (FLT_MAX, DBL_MAX, FLT_MIN, DBL_MIN) – в файле float.h. В программах, работающих под управлением ОС Windows, к исходному тексту программы относят также файлы других типов, которые будут рассмотрены в последующих курсах цикла программирования.

Замечание. Для использования констант из файла math.h перед директивой #include math.h необходимо поместить директиву #undef __STRICT_ANSI__.

Язык Basic

< программа>: =< файл> [< файл> ]...

< файл>: =[< объявление> ]…< модуль>

< модуль>: = Module < имя> [объявление]…[процедура]… End Module

< процедура>: =< подпрограмма> |< функция>

< подпрограмма>: =< инструкция Sub > {[< объявление> …] | [< исполняемая инструкция> …} End Sub

< функция>: =< инструкция Function > {[< объявление> …] | [< исполняемая инструкция> …] End Function

Замечания.

1. Объявления не могут располагаться между текстами процедур.

2. Внутри тела процедуры объявления должны предшествовать исполняемой инструкции, в которой используется объявленный объект. Допустимо применение необъявленных объектов, которые по умолчанию получают тип object, однако так делать не рекомендуется. Исполняемые инструкции не могут находиться вне тела процедуры.

3. В состав исходного текста программ на языке Visual Basic также входят файлы других типов.


Поделиться:



Последнее изменение этой страницы: 2017-04-12; Просмотров: 382; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.022 с.)
Главная | Случайная страница | Обратная связь