Source file: /~heha/j/japextra.zip/DUBLETTE.PAS

program Find_Dubletten;
uses Strings;
{Mehrfaches Auftauchen eines Kanji-Codes in GK.RC ist verboten: Check}
var
 Kanji:array[0..2000] of Integer;
 i,j,k,endi,ec,zeile,lektion,startlektion: Integer;
 zn,startzn:Integer;
 f: Text;
 s: array[0..255] of Char;
 sp,sp2: PChar;

begin
 Assign(f,'GK.RC'); reset(f);
 zeile:=1;
 i:=0;
 while not eof(f) do begin
  ReadLn(f,s);
  if (s[0] in ['0'..'9'])
  and (strpos(s,'RCDATA')=nil) then begin
   sp:=s;
   repeat
    sp2:=strscan(sp,',');
    if sp2<>nil then begin
     sp2^:=#0;
     Inc(sp2);
    end;
    Val(sp,Kanji[i],ec);
    if ec<>0 then begin
     WriteLn('Falsches Zahlenformat/Zeichen auf Zeile ',zeile);
     break;
    end;
    Inc(i);
    sp:=sp2;
   until sp=nil;
  end;
  Inc(zeile);
 end;
 close(f);
 WriteLn(i,' Kanji eingesammelt');
 endi:=i;
 startlektion:=1;
 for i:=0 to endi-1 do begin
  k:=Kanji[i];
  if k=0 then begin
   Inc(startlektion);
   startzn:=1;
  end else begin
   lektion:=startlektion;
   for j:=i+1 to endi-1 do begin
    if Kanji[j]=0 then begin
     Inc(lektion);
     zn:=1;
    end else begin
     if k=Kanji[j] then begin
      WriteLn('Dublette Code ',k:4,' Lektion/Zeichen ',
	startlektion:2,'/',startzn:2,' und ',
	lektion:2,'/',zn:2,' !');
      inc(ec);
     end;
     Inc(zn);
    end;
   end;
   Inc(startzn);
  end;
 end;
 if ec=0 then WriteLn('OK: keine Dubletten enthalten.');
end.
Detected encoding: ASCII (7 bit)2