在新文件的每一行复制特定数量的字符(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.
我想创建这个 "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.