А вообще-то странно - у меня транслируется и не ругается. И запускается. И даже что-то выдает. (Я только в самом конце пустой ReadLn пририсовал, чтобы остановилась).
А что касается типа переменной р - можно, конечно, попробовать изменить на Byte (формат возврата функции Length) но чуднО это...