'=========================================================================== ' Subject: ADD/SUBTRACT USING STRINGS Date: 10-02-97 (12:04) ' Author: John Bull Code: QB, QBasic, PDS ' Origin: flyhigh@prodigy.com Packet: ALGOR.ABC '=========================================================================== SUB m (z$, what$, cash) ' This is a sub to get by that pesky numeric limit of 32767 or -32767 ' it uses a string to keep the numbers in and then splits them up into ' 2 variables to add/subtract them. So you can have a number up to ' 999999 now. This can be very useful. Have fun! math1: IF LEN(z$) = 1 THEN z1 = VAL(RIGHT$(z$, 1)): z2 = 0 IF LEN(z$) = 2 THEN z1 = VAL(RIGHT$(z$, 2)): z2 = 0 IF LEN(z$) = 3 THEN z1 = VAL(RIGHT$(z$, 3)): z2 = 0 IF LEN(z$) = 4 THEN z1 = VAL(RIGHT$(z$, 3)): z2 = VAL(LEFT$(z$, 1)) IF LEN(z$) = 5 THEN z1 = VAL(RIGHT$(z$, 3)): z2 = VAL(LEFT$(z$, 2)) IF LEN(z$) = 6 THEN z1 = VAL(RIGHT$(z$, 3)): z2 = VAL(LEFT$(z$, 3)) z$ = RIGHT$((STR$(cash)), LEN(STR$(cash)) - 1) IF LEN(z$) = 1 THEN z3 = VAL(RIGHT$(z$, 1)): z4 = 0 IF LEN(z$) = 2 THEN z3 = VAL(RIGHT$(z$, 2)): z4 = 0 IF LEN(z$) = 3 THEN z3 = VAL(RIGHT$(z$, 3)): z4 = 0 IF LEN(z$) = 4 THEN z3 = VAL(RIGHT$(z$, 3)): z4 = VAL(LEFT$(z$, 1)) IF LEN(z$) = 5 THEN z3 = VAL(RIGHT$(z$, 3)): z4 = VAL(LEFT$(z$, 2)) IF LEN(z$) = 6 THEN z3 = VAL(RIGHT$(z$, 3)): z4 = VAL(LEFT$(z$, 3)) IF what$ = "+" THEN z1 = z1 + z3 DO IF z1 >= 1000 THEN z1 = z1 - 999 z2 = z2 + 1 x$ = "*" END IF LOOP UNTIL z1 <= 1000 IF x$ = "*" THEN z1 = z1 - 1 z2 = z2 + z4 IF z2 >= 999 THEN z2 = 999 z1$ = RIGHT$((STR$(z1)), LEN(STR$(z1)) - 1) z2$ = RIGHT$((STR$(z2)), LEN(STR$(z2)) - 1) IF LEN(z1$) = 1 THEN z1$ = "00" + z1$ IF LEN(z1$) = 2 THEN z1$ = "0" + z1$ IF LEN(z2$) = 1 THEN z2$ = "00" + z2$ IF LEN(z2$) = 2 THEN z2$ = "0" + z2$ z$ = z2$ + z1$ END IF IF what$ = "-" THEN z1 = z1 - z3 IF z1 <= -1 OR z1 <= -1 THEN z1 = z1 + 1000 z2 = z2 - 1 END IF z2 = z2 - z4 IF z2 = -1 OR z2 <= -1 THEN IF z1 = 0 THEN z2 = 0 z1 = 999 ELSE z1 = 0 z2 = 0 END IF END IF z1$ = RIGHT$((STR$(z1)), LEN(STR$(z1)) - 1) z2$ = RIGHT$((STR$(z2)), LEN(STR$(z2)) - 1) IF LEN(z1$) = 1 THEN z1$ = "00" + z1$ IF LEN(z1$) = 2 THEN z1$ = "0" + z1$ IF LEN(z2$) = 1 THEN z2$ = "00" + z2$ IF LEN(z2$) = 2 THEN z2$ = "0" + z2$ z$ = z2$ + z1$ END IF END SUB