Блочный вывод не выводит все данные, 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 одним байтом засунуть в этот файл?