home *** CD-ROM | disk | FTP | other *** search
- PROCEDURE TRIM (VAR S: LSTRING) ;
- VAR
- I_X,
- I_R,
- I_L,
- I_C, : INTEGER ;
- T : LSTRING(255) ;
- BEGIN
- COPYLST(S,T);
- I_L := T. LEN ;
- I_C := 1 ;
- WHILE (T[I_C] = ' ') DO
- BEGIN
- I_C := I_C + 1;
- END;
- { I_C WILL CONTAIN FIRST NONBLANK CHAR POSITION}
- I_R := 1 ;
- FOR I_X := I_C TO I_L DO
- BEGIN
- S[I_R] := T[I_X];
- I_R := I_R + 1 ;
- END; {FOR I_X }
- END; {TRIM}
-
- function getword (var w: lstring; var l: lstring) : integer ;
- var
- wo_rd,
- temp : lstring(255) ;
- i_word,
- i_str,
- i_ndex,
- i_wlen,
- i_llen : integer ;
- e_wrd : char ;
- BEGIN
- I_WLEN := UPPER(W) ;
- I_LLEN := L.LEN ;
- I_WORD := 0 ;
- E_WRD := ' ' ; {TERMINATION CHARACTER FOR CURRENT WORD SCAN}
- I_STR := 0 ;
- COPYLST(L,TEMP);
- WO_RD := NULL ;
- IF TEMP[1] = ' ' THEN
- TRIM(TEMP) ; {tRIM LEADING BLANKS FROM STRING}
- IF TEMP[1] = '''' THEN E_WRD := '''' ;
- IF TEMP[1] = '"' THEN E_WRD := '"' ;
- IF TEMP[1] = '(' THEN E_WRD := ')' ;
- IF TEMP[1] = '[' THEN E_WRD := ']' ;
- IF TEMP[1] = '{' THEN E_WRD := '}' ;
- I_STR := INDEX(TEMP,E_WRD) ;
- I_STR := I_STR - 1 ;
- FOR I_NDEX := 2 TO I_STR DO
- BEGIN
- WO_RD[I_NDEX] := TEMP[I_NDEX] ;
- END; {FOR INDEX 2 TO ISTR}
- I_STR := I_STR + 2;
- FOR I_NDEX := I_STR TO I_LLEN DO
- L[I_NDEX] := TEMP[I_NDEX] ;
- { INPUT STRING HAS HAD WORD TRIMMED OFF FRONT}
- COPYLST(WO_RD,W) ;
- { WORD FIELD IS PASSED BACK TO "W" PARAMETER }
- GETWORD := WO_RD.LEN ;
- { fUNCTION RETURN VALUE SET TO WORD LENGTH }
- { ** or zero IF NO WORD TO RETURN }
- END;