- •3. Структура данных
- •Типы данных
- •Массивы.
- •Применение массивов
- •Сортировка числовых данных.
- •Нахождение экстремальных значений
- •4. Файлы.
- •Имена файловых структур
- •Организация файловой структуры
- •Последовательные файлы
- •Последовательные файлы с ограниченным полем.
- •Неограниченные последовательные файлы.
- •Файлы с произвольным доступом.
- •Бинарные файлы.
- •Функции и операторы доступа к файлам
Последовательные файлы с ограниченным полем.
При рассмотрении последовательного файла видно, что данные в файле разделяются запятыми и любые цепочки заключаются в двойные кавычки (кавычки предохраняют Вас от хлопот с вкрапленными запятыми в цепочке). Рассмотрим формирование и внутреннее представление последовательного файла ADD.BAS:
OPEN "ADD.BAS" FOR OUTPUT AS #1
String$="This is a string of text"
Integer%=1000
Floating!=30000.1234
WRITE #1,String$,Integer%,Floating!
String$="Appol"
Integer%=-32767
Floating!=12345.54296875
WRITE #1,Integer%,String$,Floating!
CLOSE #1
END
Содержимое файла ADD.BAS:
"This is a string of text",1000,30000.1234
-32767,"Appol",12345.54296875
Самым важным здесь является то, что оператор WRITE # записывает данные в том виде, в котором оператор INPUT # хочет их найти. Следующая программа считывает данные из последовательного файла:
OPEN "ADD.BAS" FOR INPUT AS #1
String$="":Integer%=0:Floating!=0
INPUT #1,String$,Integer%,Floating!
PRINT String$,Integer%,Floating!
String$="":Integer%=0:Floating!=0
INPUT #1,Integer%,String$,Floating!
PRINT Integer%,String$,Floating!
CLOSE #1
END
Важно заметить, что программа не будет работать правильно, если файл был сформирован с помощью команды PRINT #, а не WRTIE #.
Неограниченные последовательные файлы.
Данные в этих файлах представлены так, как они выглядят на экране дисплея или после печати:
OPEN "ADD.BAS" FOR OUTPUT AS #1
String$="This is a string of text"
Integer%=1000
Floating!=30000.1234
PRINT #1,String$,Integer%,Floating!
String$="Appol"
Integer%=-32.767
Floating!=12345.54296875
PRINT #1,USING "+##### & ##.##^^^^;Integer%, String$, Floating!
CLOSE #1
END
Содержимое файла ADD.BAS:
This is a string of text 1000 30000.1234
-32767 Appol 12.35E+03
Если Вы попытаетесь считать данные из этого файла с помощью оператора INPUT #1, String$, Integer%, Floating!, то в строковую переменную будет считано слово This, а затем программа попытается считать числовое значение, наткнется на цепочку is и выдаст ошибку. поэтому применим здесь другие операторы для считывания:
OPEN "ADD.BAS" FOR INPUT AS #1
String$=""
String$=INPUT$(80,1)
PRINT String$
LINE INPUT #1,String$
PRINT String$
CLOSE #1
END
Замечание об операторе Print#, который отличается от оператора Write# тем, что за один раз выводит одну запись, от того сколько переменных в нем указано. Write для каждого указанного в нем выражения формирует отдельную запись. Поэтому при использовании оператора Print необходимо использовать возможность позиционирования переменных. Данный оператор удобно использовать при работе с одной переменной.
Наверно этот оператор лучше использовать для вывода значений на экран и принтер.
Функция INPUT$ - возвращает образ символов, считанных из указанного файла.