7. ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ
Подведем первые итоги. У нас есть переменные, массивы и тексты. Мы умеем задавать значения переменным, проводить вычисления в циклах и в зависимости от различных условий, умеем все это записывать в виде текстов и показывать на экране в виде сообщений. Не так уж и мало для выполнения расчетов, оформления текстов, даже написания информационных картотек. Но арсенал не полон. Даже самые первые и примитивные языки программирования типа бейсика и фортрана умели записывать и считывать данные из файлов. Правда в нашем случае, в отличие от компилируемых языков, сам текст программы может содержать внутри себя все необходимое, что обычно записывают в файлы. Но дело в том, что нужно уметь оперировать файлами, записанными в специальном формате или другими программами. А более продвинутые современные языки умеют создавать также и средства графического общения с пользователем. Не беспокойтесь. Все это есть в ACL и даже немного больше, чем в других базовых языках. Но этими средствами надо научиться пользоваться. И это не всегда просто, так как требует знаний о работе компьютера, об операционной системе, о структуре и способах записи файлов. Впереди еще много работы и делать ее надо постепенно и планомерно. А сейчас перечислим команды, которые мы уже знаем.
p | stop | exit | pro | e | pri | m
c | d | pas | case | end | rep
и обсудим некоторые детали организации памяти RAM (random access memory) и HD (hard disk). Первая - это оперативная память компьютера, она работает только при включенном компьютере и пропадает при его выключении, вторая - это память на жестких носителях, которую можно переносить из одного компьютера в другой и хранить долгое время. Язык ACL - это всего лишь набор данных для программы, написанной на языке программирования Java. Поэтому он оперирует с теми же типами данных, что и Java. В Java определены следующие типы данных
byte - целые числа длиной 1 байт со знаком и 27=128 по модулю
short - целые числа длиной 2 байта со знаком и 215=32678 по модулю
int - целые числа длиной 4 байта со знаком и 231=2147483648 по модулю
long - целые числа длиной 8 байт со знаком и 263 по модулю
float - вещественные числа длиной 4 байт со знаком, точность 7 десятичных знаков
double - вещественные числа длиной 8 байт со знаком, точность 15 десятичных знаков
char - двухбайтовые символы - уникоды.
Реально для положительных чисел модуль на единицу меньше, так как есть еще ноль. В языке ACL переменные и элементы реального массива имеют тип double, а элементы целого массива имеют тип int. Элементы текстового массива имеют тип char. Остальные типы данных в расчетах не используются, но при записи в файлы могут использоваться.
Что касается файловой структуры на жестких носителях, то она делится на диски, обозначаемые обычно одной буквой: a-дискета, b-второй дисковод, который сейчас бывает очень редко, с-системная часть винчестера, d-программная часть винчестера, но не всегда,
остальные буквы обозначают компакт-диски, флеш-память и так далее. Каждый диск имеет набор вложенных папок, внутри которых параллельно с папками могут находиться файлы. Имя файла поэтому может быть как коротким (собственно имя) так и длинным (то есть путь к файлу). В коротком имени файла могут присутствовать одна или несколько точек. Часть имени после последней точки обычно называют расширением имени и используют для определения типа файла. Например, exe - для исполняемого файла, acl - для файла с кодом программы на языке ACL, java - для файла с кодом программы на языке Java, jar - для файла с архивом кода программы на Java и так далее. Например, vkACL.jar - это архив кода
программы на Java и одновременно исполняемая программа -- интерпретатор ACL.
Полный путь к файлу на Java (и ACL) записывается так
c:/перваяпапка/втораяпапка/третьяпапка/файл
но можно писать укороченный путь относительно другой программы. Пусть, например, файл vkACL.jar находится в папке
c:/programs/vkACL/vkACL.jar
Тогда укороченный путь относительно программы vkACL.jar для файла, который находится в любых папках внутри данной будет путь, в котором
c:/programs/vkACL/
не пишут. В ACL используются только укороченные пути файлов, то есть все используемые файлы ОБЯЗАТЕЛЬНО должны находиться в папке интерпретатора или в более внутренних папках. Более того, в ACL есть понятие "рабочей папки", которую можно определить заранее и тогда имена файлов многих команд отсчитываются от этой рабочей папки. Последнюю можно переопределять по ходу выполнения программы.
Ну вот этой информации вполне достаточно, чтобы перейти к командам работы с файлами.