Программа меняет порядок следования слов на обратный.
Возникла проблема с выводом строки в файл. При запуске программы открывается пустое окно вывода результата на экран, файл не создается.

В чем ошибка? Сама функция смены порядка слов отдельно работает правильно. Помогите с ВВОДОМ и ВЫВОДОМ! Срочно!
Код:
program Project1;
{$APPTYPE CONSOLE}
uses
SysUtils;
var
str:string;
procedure vvodstr(var str:string);
var
fin:TextFile;
begin
AssignFile(fin,'File1.txt');
Reset(fin);
readln(fin,str);
CloseFile(fin);
end;
function smena (str:string):string;
var
pr:integer;
begin
Result:='';
while Length(str)>0 do
begin
pr:=Pos(' ',str);
Insert(Copy(str,1,pr),Result,1);
Delete(str,1,pr);
if pr=0 then
begin
Insert(str+' ',Result,1);
end;
pr:=0;
end;
end;
procedure vivodres;
var
fout:TextFile;
begin
AssignFile(fout,'File2.txt');
Rewrite(fout);
write(fout,smena(str));
CloseFile(fout);
end;
begin
vvodstr(str);
smena(str);
vivodres;
end.