.CM  SCRIPT , Version - 1.1 , last edited by M.Rathmann
.pa
.ad 8
.bm 8
.fm 4
.bt $Copyright (c) 1996-2005 SAP AG$$Page %$
.tm 12
.hm 6
.hs 3
.TT 1 $SQL$Project Distributed Database System$VIN33$
.tt 2 $$$
.TT 3 $BarbaraJ$string-functions$1995-11-01$
***********************************************************
.nf

.nf

.nf

    ========== licence begin  GPL
    Copyright (c) 1996-2005 SAP AG

    This program is free software; you can redistribute it and/or
    modify it under the terms of the GNU General Public License
    as published by the Free Software Foundation; either version 2
    of the License, or (at your option) any later version.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
    Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
    ========== licence end
.fo


.fo


.fo
.nf
.sp
MODULE  : string-functions
=========
.sp
Purpose : uppercase, lowercase, length of strings
.CM *-END-* purpose -------------------------------------
.sp
.cp 3
Define  :
 
        FUNCTION
              i331length  ( VAR inbuf : tsp00_MoveObj;
                    start_pos : integer;
                    s_char : char):integer;
 
        FUNCTION
              i332length  ( VAR inbuf : tsp00_MoveObj;
                    start_pos : integer;
                    s_char : char):integer;
 
        FUNCTION
              i333length  ( VAR inbuf : tsp00_MoveObj;
                    start_pos : integer;
                    s_char : char):integer;
 
        FUNCTION
              i334length  ( VAR inbuf : tsp00_MoveObj;
                    start_pos : integer;
                    s_char : char):integer;
 
        FUNCTION
              i335length  ( VAR inbuf : tsp00_MoveObj;
                    start_pos : integer;
                    s_char : char):integer;
 
        PROCEDURE
              i33uc       ( VAR inbuf : tsp00_MoveObj;
                    maxbuflen : integer;
                    pos : integer;
                    len : integer;
                    VAR outbuf : tsp00_MoveObj);
 
        PROCEDURE
              i33uc1      ( VAR inbuf : tsp00_MoveObj;
                    maxbuflen : integer;
                    pos : integer;
                    len : integer;
                    VAR outbuf : tsp00_MoveObj);
 
        PROCEDURE
              i33uc2      ( VAR inbuf : tsp00_MoveObj;
                    maxbuflen : integer;
                    pos : integer;
                    len : integer;
                    VAR outbuf : tsp00_MoveObj);
 
        PROCEDURE
              i33uc3      ( VAR inbuf : tsp00_MoveObj;
                    maxbuflen : integer;
                    pos : integer;
                    len : integer;
                    VAR outbuf : tsp00_MoveObj);
 
        PROCEDURE
              i33uc4      ( VAR inbuf : tsp00_MoveObj;
                    maxbuflen : integer;
                    pos : integer;
                    len : integer;
                    VAR outbuf : tsp00_MoveObj);
 
        PROCEDURE
              i33uc5      ( VAR inbuf : tsp00_MoveObj;
                    maxbuflen : integer;
                    pos : integer;
                    len : integer;
                    VAR outbuf : tsp00_MoveObj);
 
        PROCEDURE
              i33lc       ( VAR inbuf : tsp00_MoveObj;
                    maxbuflen : integer;
                    pos : integer;
                    len : integer;
                    VAR outbuf : tsp00_MoveObj);
 
        PROCEDURE
              i33lc1      ( VAR inbuf : tsp00_MoveObj;
                    maxbuflen : integer;
                    pos : integer;
                    len : integer;
                    VAR outbuf : tsp00_MoveObj);
 
        PROCEDURE
              i33lc2      ( VAR inbuf : tsp00_MoveObj;
                    maxbuflen : integer;
                    pos : integer;
                    len : integer;
                    VAR outbuf : tsp00_MoveObj);
 
        PROCEDURE
              i33lc3      ( VAR inbuf : tsp00_MoveObj;
                    maxbuflen : integer;
                    pos : integer;
                    len : integer;
                    VAR outbuf : tsp00_MoveObj);
 
        PROCEDURE
              i33lc4      ( VAR inbuf : tsp00_MoveObj;
                    maxbuflen : integer;
                    pos : integer;
                    len : integer;
                    VAR outbuf : tsp00_MoveObj);
 
        PROCEDURE
              i33lc5      ( VAR inbuf : tsp00_MoveObj;
                    maxbuflen : integer;
                    pos : integer;
                    len : integer;
                    VAR outbuf : tsp00_MoveObj);
 
        FUNCTION
              in3330 : tsp00_Int4;
 
.CM *-END-* define --------------------------------------
.sp;.cp 3
Use     :
 
        FROM
              RTE-Extension-30 : VSP30;
 
        FUNCTION
              s30klen (VAR str : tsp00_MoveObj;
                    val : char;
                    cnt : integer) : integer;
 
.CM *-END-* use -----------------------------------------
.sp;.cp 3
Synonym :
 
.CM *-END-* synonym -------------------------------------
.sp;.cp 3
Author  : 
.sp
.cp 3
Created : 1985-06-06
.sp
.cp 3
Version : 1996-12-04
.sp
.cp 3
Release :  6.1.2     Date : 1995-11-01
.sp
***********************************************************
.sp
.cp 20
.fo
.oc _/1
Specification:
 
.sp;.fo
.sp;.cp 6;.nf
.CM *-END-* specification -------------------------------
.sp 2.fo
***********************************************************
.sp
.cp 10
.fo
.oc _/1
Description:
 
.sp 3;.cp 16;.nf
.CM *-END-* description ---------------------------------
.sp 2
***********************************************************
.sp
.cp 10
.nf
.oc _/1
Structure:
 
.CM *-END-* structure -----------------------------------
.sp 2
**********************************************************
.sp
.cp 10
.nf
.oc _/1
.CM -lll-
Code    :
 
 
(*------------------------------*) 
 
FUNCTION
      in3330 : tsp00_Int4;
 
BEGIN
(* linkcheck function *)
in3330 := 219000816;
END;
 
(*------------------------------*) 
 
FUNCTION
      i331length  ( VAR inbuf : tsp00_MoveObj;
            start_pos : integer;
            s_char : char):integer;
 
BEGIN
i331length := s30klen (inbuf,s_char,start_pos);
END;
 
(*------------------------------*) 
 
FUNCTION
      i332length  ( VAR inbuf : tsp00_MoveObj;
            start_pos : integer;
            s_char : char):integer;
 
BEGIN
i332length := s30klen (inbuf,s_char,start_pos);
END;
 
(*------------------------------*) 
 
FUNCTION
      i333length  ( VAR inbuf : tsp00_MoveObj;
            start_pos : integer;
            s_char : char):integer;
 
BEGIN
i333length := s30klen (inbuf,s_char,start_pos);
END;
 
(*------------------------------*) 
 
FUNCTION
      i334length  ( VAR inbuf : tsp00_MoveObj;
            start_pos : integer;
            s_char : char):integer;
 
BEGIN
i334length := s30klen (inbuf,s_char,start_pos);
END;
 
(*------------------------------*) 
 
FUNCTION
      i335length  ( VAR inbuf : tsp00_MoveObj;
            start_pos : integer;
            s_char : char):integer;
 
BEGIN
i335length := s30klen (inbuf,s_char,start_pos);
END;
 
(*------------------------------*) 
 
PROCEDURE
      i33uc1      ( VAR inbuf : tsp00_MoveObj;
            maxbuflen : integer;
            pos : integer;
            len : integer;
            VAR outbuf : tsp00_MoveObj);
 
BEGIN
i33uc (inbuf,maxbuflen,pos,len,outbuf);
END;
 
(*------------------------------*) 
 
PROCEDURE
      i33uc2      ( VAR inbuf : tsp00_MoveObj;
            maxbuflen : integer;
            pos : integer;
            len : integer;
            VAR outbuf : tsp00_MoveObj);
 
BEGIN
i33uc (inbuf,maxbuflen,pos,len,outbuf);
END;
 
(*------------------------------*) 
 
PROCEDURE
      i33uc3      ( VAR inbuf : tsp00_MoveObj;
            maxbuflen : integer;
            pos : integer;
            len : integer;
            VAR outbuf : tsp00_MoveObj);
 
BEGIN
i33uc (inbuf,maxbuflen,pos,len,outbuf);
END;
 
(*------------------------------*) 
 
PROCEDURE
      i33uc4      ( VAR inbuf : tsp00_MoveObj;
            maxbuflen : integer;
            pos : integer;
            len : integer;
            VAR outbuf : tsp00_MoveObj);
 
BEGIN
i33uc (inbuf,maxbuflen,pos,len,outbuf);
END;
 
(*------------------------------*) 
 
PROCEDURE
      i33uc5      ( VAR inbuf : tsp00_MoveObj;
            maxbuflen : integer;
            pos : integer;
            len : integer;
            VAR outbuf : tsp00_MoveObj);
 
BEGIN
i33uc (inbuf,maxbuflen,pos,len,outbuf);
END;
 
(*------------------------------*) 
 
PROCEDURE
      i33uc       ( VAR inbuf : tsp00_MoveObj;
            maxbuflen : integer;
            pos : integer;
            len : integer;
            VAR outbuf : tsp00_MoveObj);
 
VAR
      i : integer;
 
BEGIN
IF  ( pos <= maxbuflen ) AND ( pos + len - 1 <= maxbuflen )
THEN
    FOR  i := 1 TO len DO
        IF  inbuf [pos+i-1 ] IN  [ 'a'..'i', 'j'..'r', 's'..'z' ]
        THEN
            outbuf [i]  := chr( ord(inbuf [pos+i-1] )+ord('A') - ord('a') )
        ELSE
            outbuf [i]  := inbuf [pos+i-1] ;
        (*ENDIF*) 
    (*ENDFOR*) 
(*ENDIF*) 
END;
 
(*------------------------------*) 
 
PROCEDURE
      i33lc1      ( VAR inbuf : tsp00_MoveObj;
            maxbuflen : integer;
            pos : integer;
            len : integer;
            VAR outbuf : tsp00_MoveObj);
 
BEGIN
i33lc (inbuf,maxbuflen,pos,len,outbuf);
END;
 
(*------------------------------*) 
 
PROCEDURE
      i33lc2      ( VAR inbuf : tsp00_MoveObj;
            maxbuflen : integer;
            pos : integer;
            len : integer;
            VAR outbuf : tsp00_MoveObj);
 
BEGIN
i33lc (inbuf,maxbuflen,pos,len,outbuf);
END;
 
(*------------------------------*) 
 
PROCEDURE
      i33lc3      ( VAR inbuf : tsp00_MoveObj;
            maxbuflen : integer;
            pos : integer;
            len : integer;
            VAR outbuf : tsp00_MoveObj);
 
BEGIN
i33lc (inbuf,maxbuflen,pos,len,outbuf);
END;
 
(*------------------------------*) 
 
PROCEDURE
      i33lc4      ( VAR inbuf : tsp00_MoveObj;
            maxbuflen : integer;
            pos : integer;
            len : integer;
            VAR outbuf : tsp00_MoveObj);
 
BEGIN
i33lc (inbuf,maxbuflen,pos,len,outbuf);
END;
 
(*------------------------------*) 
 
PROCEDURE
      i33lc5      ( VAR inbuf : tsp00_MoveObj;
            maxbuflen : integer;
            pos : integer;
            len : integer;
            VAR outbuf : tsp00_MoveObj);
 
BEGIN
i33lc (inbuf,maxbuflen,pos,len,outbuf);
END;
 
(*------------------------------*) 
 
PROCEDURE
      i33lc       ( VAR inbuf : tsp00_MoveObj;
            maxbuflen : integer;
            pos : integer;
            len : integer;
            VAR outbuf : tsp00_MoveObj);
 
VAR
      i : integer;
 
BEGIN
IF  ( pos <= maxbuflen ) AND ( pos + len - 1 <= maxbuflen )
THEN
    FOR  i := 1 TO len DO
        IF  inbuf [pos+i-1 ] IN  [ 'A'..'I', 'J'..'R', 'S'..'Z' ]
        THEN
            outbuf [i]  := chr( ord(inbuf [pos+i-1] )-ord('A') + ord('a') )
        ELSE
            outbuf [i]  := inbuf [pos+i-1] ;
        (*ENDIF*) 
    (*ENDFOR*) 
(*ENDIF*) 
END;
 
.CM *-END-* code ----------------------------------------
.SP 2 
***********************************************************
*-PRETTY-*  statements    :         26
*-PRETTY-*  lines of code :        246        PRETTY  3.09 
*-PRETTY-*  lines in file :        458         1992-11-23 
.PA 
