program vergelijk; Uses SysUtils, MidiDoos; var One,Two : string; OK : boolean; procedure Some_Help; begin Writeln('VERGELIJK'); Writeln; Writeln('Compares content of two MidiFiles'); Writeln; writeln('Syntax: [program] [IMF] [INF]'); Writeln; Writeln('IMF = name of Input MidiFile'); Writeln('INF = name of Another MidiFile'); end; procedure Read_Parameters(var OK : boolean); var tel : integer; begin OK := true; tel := ParamCount; if tel <> 2 then begin Some_Help; OK := false; Exit; end; One := ParamStr(1); Two := ParamStr(2); if not FileExists(One) then begin Writeln(One + ': does Not exist'); OK := false; end; if not FileExists(Two) then begin Writeln(Two + ': does Not exist'); OK := false; end; end; function vergelyk(bron,doel : string) : boolean; { Are two MidiFiles the same? } var M,N : Midi; a,b : byte; OK : boolean; one,two,min,k : integer; begin OK := true; M := Midi.Create; M.Read_MidiFile(bron); one := Length(M.invoer); N := Midi.Create; N.Read_MidiFile(doel); two := Length(N.invoer); min := one; if two < one then min := two; for k := 0 to min-1 do begin a := M.invoer[k]; b := N.invoer[k]; if not (a = b) then OK := false; if not OK then begin Writeln('=/= byte : ',k); Break; end; end; vergelyk := OK and (one = two); end; begin Read_Parameters(OK); if not OK then Exit; OK := Vergelyk(One,Two); If OK then Writeln(One,' = ',Two) else Writeln(One,' <> ',Two); end.