program refer;

{ sucht aus WORDSTAR-Files die mit CTRL-D markierten
  Literatur-Referenzen heraus
  A.Herrmann 01.10.85 }

const tab:    char=#$09;
      cr:     char=#$0D;
      lf:     char=#$0A;
      blank:  char=#$20;
      ctrld:  char=#$04;
      ctrldd: char=#$84;

type txt = string[255];

var ch: char;
    name1,name2: string[14];
    datei1,datei2: text;
    azeile,nzeile: string[255];
    zz: integer;
    lg: integer;
    i,ii,j: integer;
    k,kk: integer;
    tabflg: boolean;

procedure getlin(var zeile:txt; var lg:integer);
var  ch: char;
begin
zeile:='';
lg:=0;
repeat
    read(datei1,ch);
    zeile:=zeile+ch;
    lg:=lg+1;
until (ch=lf) or (length(zeile)=255);
end;

begin { refer }

repeat
writeln; write('Name der Quelldatei = '); readln(name1);
assign(datei1,name1);
{$I-} reset(datei1) {$I+};
if Ioresult<>0 then writeln('Datei ',name1,' nicht gefunden.')
else
    begin
    repeat
        getlin(azeile,lg);
{        writeln(copy(azeile,1,lg));
        read(ch);}
        if lg>2 then
            begin
            repeat
            i:=pos(ctrld,azeile);
            if i>0 then
                begin
                azeile:=copy(azeile,i+1,lg-i);
                lg:=lg-i;
                j:=pos(ctrld,azeile);
                if j=0 then j:=pos(ctrldd,azeile);
{                writeln(azeile); writeln(i:5,j:5);    }
                if j>0 then
                    begin
                    writeln(copy(azeile,1,j-1));
                    azeile:=copy(azeile,j+1,lg-j);
                    lg:=lg-j;
                    end
                else
                    begin
                    write(copy(azeile,1,lg-2));
                    repeat
                        getlin(azeile,lg);
                        j:=0;
                        if lg>2 then
                            begin
                            j:=pos(ctrld,azeile);
                            if j=0 then j:=pos(ctrldd,azeile);
                            if j>0 then
                                writeln(copy(azeile,1,j-1));
                            end;
                    until j>0;
                    azeile:=copy(azeile,j+1,lg-j);
                    lg:=lg-j;
                    end;
                end;
            until i=0;
            end;
    until eof(datei1);
    ch:='y';
    end;
until ch in ['N','n'];

end. { refer }

