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

时间:2015-02-19 15:31:11

标签: file text-files pascal

我想创造这个"简单"从文件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然后复制到字符串中,但没有一个正常工作。通常它只在B中创建空行。我确定必须有其他方法来做到这一点,但我最好对这段代码中的错误感到好奇。

1 个答案:

答案 0 :(得分:1)

好的,所以它终于开始工作,但我发送解决方案的服务器将其标记为错误..无论如何,如果有人感兴趣的话,这里是最终的代码可以在我的PC上运行。谢谢你的提示。

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.