在新文件的每一行复制特定数量的字符(Pascal)

Copying specific number of chars on each line of new file (Pascal)

我想创建这个 "simple" 程序,它从文件 A 中读取字符(或行)并将它们复制到文件 B 中。而在 B 中,每行恰好有 20 个字符。这是我目前所拥有的:

var t,tt : text;
    i    : integer;
    s    : string;


begin
 assign(t,'a.txt');
 assign(tt,'b.txt');
 reset(t);
 rewrite(tt);
 i:=0;

 while not eof(t) do
   begin
    i:=i+1;
    if eoln(t) then readln(t);
    read(t,s[i]);
    if i=20 then
     if eof(t) then break
     else
       begin
        writeln(tt,s);
        i:=0
       end;
   end;

 write(tt,s);
 close(t);
 close(tt);
end.

我尝试了一些变体,例如读入 char 然后复制到字符串,但 none 工作正常。通常它只会在 B 中创建空白行。我相信一定有其他方法可以做到这一点,但我最好奇这段代码中有什么问题。

好的,不知何故它终于开始工作了,但是我发送解决方案的服务器将其标记为错误。无论如何,如果有人感兴趣的话,这是在我的电脑上运行的最终代码。谢谢大家的提示。

var t,tt : text;
    i,k  : integer;
    s,x  : string;


begin
 assign(t,'a.txt');
 assign(tt,'b.txt');
 reset(t);
 rewrite(tt);
 i:=0;

 while not eof(t) do
   begin
    i:=i+1;
    if eoln(t) then readln(t,x);
    read(t,s[i]);
    if i=20 then
     if eof(t) then break
     else
       begin
        for k:=1 to 19 do
        write(tt,s[k]);
        writeln(tt,s[20]);
        i:=0
       end;
   end;

 for k:=1 to i do
 write(tt,s[k]);
 close(t);
 close(tt);
end.