В файле в кодировке юникод 1 символ занимает 2 байта, а в памяти помоему только 1 байт, а если и 2, то всеравно нужно читать его не как два байта, а как значение типа char.
Вообще в паскале делается так:
program xxxxxx;
type
ch=array[1..30] of char;
var
sl: array[1..1000] of ch;
c:char;
begin
c:=sl[1,1];
end.
Но у меня при компиляции MP просто вылетает.