                CHAPTER 7 - Strings and string procedures


                              PASCAL STRINGS

             According to the Pascal definition,  a string is simply 

        an  array  of  2 of more characters of  type  CHAR,  and  is 

        contained  in  an array defined in a VAR  declaration  as  a 

        fixed length.  Look at the example program STRARRAY.  Notice 

        that  the  strings are defined in the TYPE declaration  even 

        though  they could have been defined in the VAR part of  the 

        declaration. This is to begin getting you used to seeing the 

        TYPE declaration.  The strings defined here are nothing more 

        than arrays with CHAR type variables.

            The interesting part is the program.   Notice that  when 

        the  variable  "first_name" is assigned a value,  the  value 

        assigned  to  it must contain exactly 10 characters  or  the 

        compiler  will generate an error.   Try editing out a  blank 

        and you will get an invalid type error.   Pascal is neat  in 

        allowing  you  to write out the values in the  string  array 

        without specifically writing each character in a loop as can 

        be  seen in the "WRITELN" statement.   To combine the  data, 

        called  concatenation,   requires  the  use  of  the  rather 

        extensive  looping and subscripting seen in the last part of 

        the  program.   It  would  be even messier  if  we  were  to 

        consider  variable length fields which is nearly always  the 

        case in a real program.

            Two  things should be noticed in this  program.   First, 

        notice  the fact that the string operations are truly  array 

        operations  and  will  follow  all  of  the  characteristics 

        discussed in the last chapter.  Secondly, it is very obvious 

        that  Pascal is rather weak when it comes to its handling of 

        text type data.   Keep in mind that Pascal will handle  text 

        data,  even  though it may be difficult.   This concerns the 

        standard description of Pascal,  we will see next that TURBO 

        Pascal really shines here.

                       THE TURBO PASCAL STRING TYPE

            Look  at the example program STRINGS.   You will  see  a 

        much  neater program that actually does more.   TURBO Pascal 

        has,  as an extension to standard Pascal, the STRING type of 

        variable.  It is used as shown, and the number in the square 

        brackets in the VAR declaration is the maximum length of the 

        string.   In actual use in the program,  the variable can be 

        used  as any length from zero characters up to  the  maximum 

        given  in the declaration.   The variable "first_name",  for 

        example, actually has 11 locations stored for its data.  The 

        current length is stored in "first_name[0]" and the data  is 

        stored  in  "first_name[1]" through  "first_name[10]".   All 

        data is stored as byte variables,  including the  size,  and 





                                 Page 33









                CHAPTER 7 - Strings and string procedures


        the  length  is  therefore  limited  to  a  maximum  of  255 

        characters.

            Now  look  at  the  program  itself.   Even  though  the 

        variable  "first_name" is defined as 10 characters long,  it 

        is perfectly legal to assign it a 4 character constant, with 

        "first_name[0]"  automatically set to four and the last  six 

        characters undefined and unneeded.   When the program is run 

        the  three variables are printed out all  squeezed  together 

        indicating  that the variables are indeed shorter than their 

        full  size  as defined in the VAR  declaration.   Using  the 

        STRING  type  is  even easier when  you  desire  to  combine 

        several  fields into one as can be seen in the assignment to 

        "full_name".   Notice that there are even two blanks, in the 

        form  of  constant fields,  inserted between  the  component 

        parts of the full name.   When it is written out,  the  full 

        name is formatted neatly and is easy to read.

                    WHAT IS IN A STRING TYPE VARIABLE?

            The next example program named WHATSTRG,  is intended to 

        show you exactly what is in a string variable.  This program 

        is  identical  to  the last program except  for  some  added 

        statements  at the end.   Notice the assignment to  "total".  

        The  function "length" is available in TURBO Pascal to  find 

        out  what is the current length of any STRING type variable, 

        it  returns a byte type variable with the value of  the  [0] 

        position  of  the  variable.   We print out  the  number  of 

        characters  in the string at this point,  and then print out 

        each  character on a line by itself to illustrate  that  the 

        TURBO  Pascal  STRING  type  variable  is  simply  an  array 

        variable.

            The TURBO Pascal reference manual has a full description 

        of  several more procedures and functions available in TURBO 

        Pascal   only.    Refer  to  your  manual  for  a   complete 

        description given in chapter 9,  beginning on page 67.   The 

        use  of these should be clear after you grasp  the  material 

        covered here.

                           PROGRAMMING EXERCISES

        1.  Write a program in which you store your  first,  middle, 

            and last names as variables,  then display them one to a 

            line. Concatenate the names with blanks between them and 

            display your full name as a single variable.







                                 Page 34

