home *** CD-ROM | disk | FTP | other *** search
- {$A+,B+,D-,E-,F-,I-,L-,N-,O-,R-,S-,V-}
- {$M 65520,0,655360}
- Unit TPDBMath;
-
- (* Copyright 1989 Brian Corll and Ten B.C. Micro Systems *)
-
- (* Mathematical functions for TPDB. *)
-
-
- INTERFACE
-
- Uses TPDB;
-
- Function Add(Field1,Field2 : Byte):string;
-
- Function Sub(Field1,Field2 : Byte) : string;
-
- Function Mul(Field1,Field2 : Byte):string;
-
- Function Divide(Field1,Field2 : Byte):string;
-
- Function Max(N1,N2 : Integer) : Integer;
-
- Function Min(N1,N2 : Integer) : Integer;
-
- IMPLEMENTATION
-
-
-
- Function Add(Field1,Field2 : Byte):string;
- (* Adds two fields and returns the string of the sum. *)
- Var
- T1,T2,T3 : String;
- A1,A2,A3 : Real;
- ErrCode : Integer;
- begin
- T1 := RTrim(FieldToStr(Field1));
- T2 := RTrim(FieldToStr(Field2));
- Val(T1,A1,ErrCode);
- Val(T2,A2,ErrCode);
- A3 := A1+A2;
- Str(A3 : Max(Fields^[Field1].FieldLen,Fields^[Field2].FieldLen) :
- Max(Fields^[Field1].FieldDec,Fields^[Field2].FieldDec),T3);
- Add := LTrim(T3);
- end;
-
- Function Sub(Field1,Field2 : Byte) : string;
- (* Subtract field 2 FROM field 1 *)
- Var
- T1,T2,T3 : String;
- S1,S2,S3 : Real;
- ErrCode : Integer;
- begin
- T1 := RTrim(FieldToStr(Field1));
- T2 := RTrim(FieldToStr(Field2));
- Val(T1,S1,ErrCode);
- Val(T2,S2,ErrCode);
- S3 := S1-S2;
- Str(S3 : Max(Fields^[Field1].FieldLen,Fields^[Field2].FieldLen) :
- Max(Fields^[Field1].FieldDec,Fields^[Field2].FieldDec),T3);
- Sub := LTrim(T3);
- end;
-
- Function Mul(Field1,Field2 : Byte):string;
- (* Multiply field 1 and field2 *)
- Var
- T1,T2,T3 : String;
- M1,M2,M3 : Real;
- ErrCode : Integer;
- begin
- T1 := RTrim(FieldToStr(Field1));
- T2 := RTrim(FieldToStr(Field2));
- Val(T1,M1,ErrCode);
- Val(T2,M2,ErrCode);
- M3 := M1*M2;
- Str(M3 : Max(Fields^[Field1].FieldLen,Fields^[Field2].FieldLen) :
- Max(Fields^[Field1].FieldDec,Fields^[Field2].FieldDec),T3);
- Mul := LTrim(T3);
- end;
-
- Function Divide(Field1,Field2 : Byte):string;
- (* Divide field1 BY field 2 *)
- Var
- T1,T2,T3 : String;
- D1,D2,D3 : Real;
- begin
- T1 := RTrim(FieldToStr(Field1));
- T2 := RTrim(FieldToStr(Field2));
- Val(T1,D1,ErrCode);
- Val(T2,D2,ErrCode);
- D3 := D1/D2;
- Str(D3 : Max(Fields^[Field1].FieldLen,Fields^[Field2].FieldLen) :
- Max(Fields^[Field1].FieldDec,Fields^[Field2].FieldDec),T3);
- Divide := LTrim(T3);
- end;
-
- Function Min(N1,N2 : Integer) : Integer;
- begin
- If N1<N2 then Min := N1
- else Min := N2;
- end;
-
- Function Max(N1,N2 : Integer) : Integer;
- begin
- If N1>N2 then Max := N1
- else Max := N2;
- end;
- begin
- end.