Pascal:读取包含多行的文本文件

时间:2015-11-23 22:25:28

标签: algorithm pascal writing

我是计算机科学的第一年,我正在努力学习基础课程......

我有一个输入文件:

aa bb cc dd

该计划:

program readingas;
var df:text; i,j,k,x,wc:integer; A,B,C:array[1..255]of string; IPavad:string;
begin
assign(df,'duom.txt');reset(df);
wc:=1;
k:=1;
while not eof(df) do
    begin
        readln(df,A[wc]);
        wc:=wc+1;
    end;
    for i:=1 to wc-1 do
        begin
            for j:=1 to length(A[i]) do
                    if A[i][j]=' ' then k:=k+1 else B[k]:=B[k]+A[i][j];
                end;
close(df);
 for x:=1 to k do
    begin
        writeln(B[x]);
    end;
    readln;
end.

输出文件如下所示:

aa bbccdd

当我想要它时:

aa bb cc dd

无法弄清楚程序有什么问题......

1 个答案:

答案 0 :(得分:0)

此:

       B[k]:=B[k]+A[i][j];

是一个串联,如果没有包含中间空格的文本的行,则将所有文本连接在一起。这些行被跳过。

这看起来很正常。可能你想在跳过两种情况下总是增加K.

var b :boolean

while not eof(df) do
    begin
        readln(df,s);
        b:=true;
        for j:=1 to length(s) do   
          if s[j]=' ' then b:=false;
        if b then
           writeln(s);  
    end;

也会这样做。您可以使用

删除大多数编译中的整个循环
  if Pos(' ',s)=0 then 
     writeln(s) 

甚至