{ Mattias Hansson (d92mh@efd.lth.se) wrote: : I wonder if there is any way to check how fast a program is executing. : The program should look like this : ... : starttime:="CPU-time" : ... doing something ... : stoptime:="CPU-time" : execution-time:=stoptime-starttime : ... : IS IT POSSIBLE IN PASCAL ? I mad somethink LONG LONG ago, so it may be wrong, slow buggy etc.. -- CUT HERE --- } unit DURATION; interface uses dos; var starttime,endtime,dauer : STRING[22]; procedure startzeit; {r da, um die StartZeit festzulegen } procedure endzeit; {r da, um die EndZeit festzulegen } procedure zeitformat; { Berechnet die Dauer, und Formatiert die Strings } implementation var hour,minute,second,thousend : integer; hour1,minute1,second1,thousend1, hour2,minute2,second2,thousend2 : word; procedure startzeit; begin GetTime(hour1,minute1,second1,thousend1); end; procedure endzeit; begin GetTime(hour2,minute2,second2,thousend2); end; PROCEDURE zeitformat; VAR strngs : STRING[2]; BEGIN starttime:=''; { Etwas kompliziert zu lesen, mir fiel aber } endtime :=''; { nichts anderes ein... } dauer :=''; Str(hour1,strngs); IF Length(strngs)<2 THEN Insert('0',strngs,1); starttime:=starttime+strngs+':'; Str(minute1,strngs); IF Length(strngs)<2 THEN Insert('0',strngs,1); starttime:=starttime+strngs+':'; Str(second1,strngs); IF Length(strngs)<2 THEN Insert('0',strngs,1); starttime:=starttime+strngs+'.'; Str(thousend1,strngs); IF Length(strngs)<2 THEN Insert('0',strngs,1); starttime:=starttime+strngs; Str(hour2,strngs); IF Length(strngs)<2 THEN Insert('0',strngs,1); endtime:=endtime+strngs+':'; Str(minute2,strngs); IF Length(strngs)<2 THEN Insert('0',strngs,1); endtime:=endtime+strngs+':'; Str(second2,strngs); IF Length(strngs)<2 THEN Insert('0',strngs,1); endtime:=endtime+strngs+'.'; Str(thousend2,strngs); IF Length(strngs)<2 THEN Insert('0',strngs,1); endtime:=endtime+strngs; IF hour1>hour2 THEN BEGIN hour:=24+hour2-hour1; END ELSE hour:=hour2-hour1; IF minute1>minute2 THEN BEGIN minute:=60+minute2-minute1; hour:=hour-1; END ELSE minute:=minute2-minute1; IF second1>second2 THEN BEGIN second:=60+second2-second1; minute:=minute-1; END ELSE second:=second2-second1; IF thousend1>thousend2 THEN BEGIN thousend:=100+thousend2-thousend1; second:=second-1; END ELSE thousend:=thousend2-thousend1; Str(hour,strngs); IF Length(strngs)<2 THEN Insert('0',strngs,1); dauer:=dauer+strngs+':'; Str(minute,strngs); IF Length(strngs)<2 THEN Insert('0',strngs,1); dauer:=dauer+strngs+':'; Str(second,strngs); IF Length(strngs)<2 THEN Insert('0',strngs,1); dauer:=dauer+strngs+'.'; Str(thousend,strngs); IF Length(strngs)<2 THEN Insert('0',strngs,1); dauer:=dauer+strngs; END; end.