Блочный вывод не выводит все данные, pascal

Вот код, в котором я в элемент массива под номером 2 помещаю данные типа string, byte и char, что в совокупности дают 256+1+1 = 258 байт.

program recordfortext;
const
        blocksize = 258;
        Filename = 'text.bin';
        Max = 10;
type
        Human = record
                name: string;
                age: byte;
                sex: char;
        end;
        MainArray = array [1..Max] of Human;
var
        f1: file;
        hs: MainArray;
        st: Human;
        f: integer;

{_________________________________________________________}

begin
        st.name:= 'Sobaka';
        st.age := 69;
        st.sex := 'M';
        hs[2] := st;

        write(hs[2].name, ' ', hs[2].age, ' ', hs[2].sex);
        writeln();

Как видно, я указываю размер блока 258 байт константой, то есть элемент массива весит 258 байт и вот что я делаю с файлом:

        assign(f1, Filename);
        filemode := 1;
        rewrite(f1, 1);
        BlockWrite(f1, hs[2], blocksize, f);
        close(f1);
        writeln(f)
end.

Я закидываю блоком в файл элемент массива под номером 2, размер блока 258 байт и в переменную f он тоже выдаёт то, что 258 байт записал. Вроде бы ведь всё верно, комплиятор сделал дело, запускаю программу. Ввожу hexdump -C text.bin, а там вот что:

00000000  06 53 6f 62 61 6b 61 00  00 00 00 00 00 00 00 00  |.Sobaka.........|
00000010  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
*
00000100  45 4d                                             |EM|
00000102

Где цифра 69?

Видимо я понял... Число 69 он почему то преобразует в Е по 10тичной ситеме ascii, как chr(69), а Е выдаёт в hexdump как 45 в 16ричной...

Новый вопрос: Как мне 69 одним байтом засунуть в этот файл?


Ответы (0 шт):