Замечание: если файл открыт на чтение, то записать в него ничего не получится, и наоборот. В противном случае будет выдано сообщение об ошибке.
Чтобы сместиться на определенную позицию в файле, используется процедура Seek(<Файл>, <Позиция>):
Seek(F, 500);
Если <Позиция> будет больше, чем размер файла, то будет выдано сообщение об ошибке. Чтобы определить размер файла в байтах, необходимо применить процедуру FileSize(<Имя Файла>):
k:=FileSize(F); {где k – целочисленная переменная}
Для завершения работы с файлом и его закрытия используют процедуру Close(<Имя Файла>):
Close(F);
Для того, чтобы прочитать целиком весь файл, используют цикл While с условием:
While not eof(F) do
begin
…
{операции чтения}
…
end
Функция eof(<Имя Файла>) – логического (булевого) типа. Она принимает ложное значение (FALSE), когда не достигнут конец файла, и истинное (TRUE), когда указатель чтения дошел до конца файла.
*Строковый режим
В разделе описания переменных var описываем файл и переменную типа string:
Var
F: Text;
s: string;
…
Для связи файловой переменной F и реального файла на диске используется процедура Assign(<Файл>, <‘Имя Файла’>):
Assign(F, ’input.txt’);
Для открытия файла на чтение используют процедуру Reset(<Файл>). Необходимо, чтобы файл с таким именем существовал на диске, иначе будет ошибка.
Reset(F);
Для открытия файла на запись используют процедуру Rewrite(<Файл>). Наличие файла на диске необязательно, однако, если такой файл существует на диске, то его содержимое обнуляется.
Rewrite(F);
Для того, чтобы считать одну строку из файла, применяют процедуру
Readln(<Файл>, <Строка>):
Readln(F,s);
Для того, чтобы записать одну строку в файл, применяют процедуру
Writeln(<Файл>, <Строка>):
Writeln(F,s);
Замечание: если файл открыт на чтение, то записать в него ничего не получится, и наоборот. В противном случае будет выдано сообщение об ошибке.
Для завершения работы с файлом и его закрытия используют процедуру Close(<Имя Файла>):
Close(F);
Для того, чтобы прочитать целиком весь файл, используют цикл While с условием:
While not eof(F) do
begin
…
{операции чтения}
…
End
Различные системы счисления.
В настоящем пособии будут рассмотрены три системы счисления (десятичная, двоичная и шестнадцатеричная), а также описаны методы перевода из одной системы счисления (СС) в другую.
*Десятичная
Это всем привычная и известная система счисления. Она задается десятью цифрами: от нуля до девяти. Обозначение 25510 говорит о том, что это число 255 в десятичной СС.
*Двоичная
Задается двумя цифрами: нулем и единицей. Обозначение 101012 говорит о том, что это число 10101 в двоичной СС.
*Шестнадцатеричная
Это всем привычная и известная система счисления. Она задается шестнадцатью цифрами и цифрами-буквами: от нуля до F. Обозначение AA16 говорит о том, что это число AA в шестнадцатеричной СС. Кроме обозначения AA16 существуют также обозначения AAh или $AA, что является одним и тем же. Ниже в таблице сопоставлены три системы счисления:
Десятичная |
Двоичная |
Шестнадцатеричная |
0 |
0 |
0 |
1 |
1 |
1 |
2 |
10 |
2 |
3 |
11 |
3 |
4 |
100 |
4 |
5 |
101 |
5 |
6 |
110 |
6 |
7 |
111 |
7 |
8 |
1000 |
8 |
9 |
1001 |
9 |
10 |
1010 |
A |
11 |
1011 |
B |
12 |
1100 |
C |
13 |
1101 |
D |
14 |
1110 |
E |
15 |
1111 |
F |
*Перевод из десятичной в другие системы счисления
Перевод осуществляется с помощью деления столбиком.
-
Сперва берется исходное число в десятичной СС
-
Это число делится на основание новой СС (например, 2), результат записывается в переменную T
-
Фиксируется остаток от деления O1
Делим получившееся число T на основание новой СС до тех пор, пока T не станет меньше делителя. Фиксируем остатки Oi
-
В конце сносим вниз T и выписываем следующую последовательность: TONON-1…O1
Пример: 1510 11112
Получившее число и будет числом в новой СС.
*Перевод из двоичной в десятичную СС
Для перевода из двоичной в десятичную СС выписываем двоичное число и двигаемся по его цифрам справа налево. Сперва самую правую цифру (1 или 0) умножаем на 20, результат прибавляем к общей сумме, которая по началу равна нулю. Затем вторую цифру умножаем на 21 и прибавляем к сумме, потом третью цифру умножаем на 22 и прибавляем, и т.д.
Пример: 1010112 = 1*20+1*21+0*22+1*23+0*24+1*25 = 1+2+8+32 = 4310
Примечание: перевод из шестнадцатеричной СС в десятичную отличается от перевода из двоичной в десятичную СС только тем, что умножать нужно не на двойку в какой-то степени, а на шестнадцать в соответствующих степенях.
Работа с файловым менеджером FAR Manager.
Файловый менеджер FAR запускается из командной строки (ПускВыполнитьfar), либо с ярлыка, например, на рабочем столе. После запуска программы открывается примерно следующее окно:
Окно состоит из двух панелей: левой и правой, в каждой из которых отражено содержимое дисков. Текущий диск показан сверху на подписи к панели. Чтобы сменить диск в левой панели, необходимо нажать ALT+F1, чтобы сменить диск на правой панели, необходимо нажать ALT+F2.
Перемещаться по файлам и каталогам можно с помощью стрелок на клавиатуре. Чтобы подняться на каталог выше, необходимо установить указатель на самую верхнюю строку (..) и нажать ENTER. Чтобы зайти в выбранную папку или открыть файл, необходимо нажать ENTER, установив указатель на нужный объект.
Чтобы просмотреть содержимое какого-либо файла, необходимо установить указатель на этот файл и нажать F3. Откроется окно примерно следующего содержания:
Это окно содержит символы, из которых состоит данный файл. Чтобы посмотреть шестнадцатеричные значения байт, которыми закодированы эти символы, следует нажать F4. Окно примет следующий вид:
Можно заметить, что окно теперь состоит из 4 столбцов. Рассмотрим левый столбец. В этом столбце отображены номера байт, из которых состоит файл. Самый первый номер байта будет 0000000000, затем идет байт номер 0000000001, затем – 0000000002 и т.д. Самым последним номером в первой строке будет номер 000000000F. После этого нумерация переносится на вторую строку и т.д. Следующим номером после 000000000F будет номер 0000000010. Все номера представлены в шестнадцатеричной СС. Получается, что если нам нужен байт с номером 00000000AC, мы должны перейти на строку с номером 00000000A0 и двигаться вправо по этой строке, проходя номера 0, 1, 2, 3, ….., A, B, C. На пересечении строки 00000000A0 и столбца C и будет искомый байт.
Номера байтов представлены в столбцах 2 и 3 (что в центре экрана), эти номера находятся в диапазоне от 00 до FF в шестнадцатеричной СС, что соответствует диапазону от 0 до 255 в десятичной СС.
В четвертом (правом) столбце отображены символы, которые соответствуют тем или иным байтам. Например, рассмотрим первые 4 байта: 4D 5A 90 00. Они имеют адреса: 0000000000h, 0000000001h, 000000002h и 0000000003h и представимы символами «MZ_ ».
Для перемещения по файлу используйте клавиши стрелок клавиатуры, а также клавишы Page Down, Page Up, End и Home.